Стек TCP/IP и маршрутизация пакетов

Четыре уровня TCP/IP и их соответствие OSI, отличие TCP от UDP, установление соединения, таблица маршрутизации, работа шлюза и NAT, инкапсуляция данных.

Модель OSI — теоретическая схема, а работает сеть по стеку TCP/IP. Четыре уровня вместо семи, зато это реальные протоколы, которые вы увидите в Wireshark при выполнении лабораторной.

Уровень TCP/IPСоответствие OSIПротоколыЕдиница данных
Прикладной7, 6, 5HTTP, DNS, FTP, SMTP, SSHДанные
Транспортный4TCP, UDPСегмент / датаграмма
Межсетевой3IP, ICMP, ARPПакет
Канальный2, 1Ethernet, Wi-Fi, PPPКадр

Инкапсуляция

Данные приложения
  → + TCP-заголовок (порты, номера)        = сегмент
    → + IP-заголовок (адреса, TTL)          = пакет
      → + Ethernet-заголовок (MAC) и хвост  = кадр
        → биты в среду передачи

На приёмной стороне заголовки снимаются в обратном порядке

TCP или UDP

ПризнакTCPUDP
СоединениеУстанавливаетсяНет, отправил и забыл
ДоставкаГарантирована, с повторамиНе гарантирована
ПорядокВосстанавливаетсяКак придёт
Заголовок20 байт и больше8 байт
Контроль перегрузкиЕстьНет
Где применяютВеб, почта, файлы, БДDNS, видеозвонки, игры, стриминг

Выбор объясняется просто: потерянный байт файла недопустим, а потерянный кадр видеозвонка незаметен — зато задержка на повторную передачу разрушила бы разговор.

Установление и разрыв соединения TCP

Тройное рукопожатие:
  Клиент → SYN (seq = x)              → Сервер
  Клиент ← SYN-ACK (seq = y, ack=x+1) ← Сервер
  Клиент → ACK (ack = y+1)            → Сервер
  Соединение установлено

Завершение (четыре шага):
  FIN → , ← ACK , ← FIN , ACK →
Флуд полуоткрытыми соединениями (SYN-flood) эксплуатирует именно эту схему: атакующий шлёт SYN и не отвечает на SYN-ACK, а сервер держит ресурсы под каждое незавершённое рукопожатие. Защита — SYN cookies.

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

Получив пакет, маршрутизатор сравнивает адрес назначения с таблицей маршрутов и выбирает запись с самой длинной совпадающей маской — правило самого точного совпадения. Если ничего не подошло, пакет уходит по маршруту по умолчанию 0.0.0.0/0.

Сеть назначения    Маска            Шлюз          Интерфейс  Метрика
0.0.0.0            0.0.0.0          192.168.1.1   eth0       10
192.168.1.0        255.255.255.0    0.0.0.0       eth0       0
10.0.0.0           255.255.255.0    192.168.1.254 eth0       20
127.0.0.0          255.0.0.0        0.0.0.0       lo         0

Пакет на 10.0.0.5 → совпали /8 (default) и /24 (10.0.0.0)
                  → выбирается /24, шлюз 192.168.1.254

Статическая и динамическая маршрутизация

СтатическаяДинамическая
НастройкаВручнуюПротоколом RIP, OSPF, BGP
Реакция на обрывНет, нужна правкаАвтоматический пересчёт
НагрузкаНулеваяОбмен служебными пакетами
ПрименениеМалые сети, курсоваяПровайдеры, крупные сети

NAT

Частные адреса (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) в интернете не маршрутизируются. NAT подменяет адрес отправителя на публичный адрес шлюза и запоминает соответствие, чтобы вернуть ответ нужному хосту. При PAT различение идёт по номеру порта, поэтому за одним публичным адресом живут сотни устройств.

Исходящий:  192.168.1.5:51234 → 93.184.216.34:443
После NAT:  203.0.113.7:40001 → 93.184.216.34:443

Таблица трансляций шлюза:
  203.0.113.7:40001  ↔  192.168.1.5:51234
Побочный эффект NAT: входящее соединение к хосту за ним невозможно без проброса портов. В курсовой это стоит упомянуть как ограничение при проектировании сети с сервером внутри локального сегмента.

Диагностика для лабораторной

ping 8.8.8.8              # доступность узла и время отклика
tracert 8.8.8.8           # traceroute в Linux/macOS — путь пакета по узлам
ipconfig /all             # ifconfig или ip a в Linux
route print               # ip route — таблица маршрутизации
netstat -an               # ss -tuln — открытые порты и соединения
nslookup example.com      # dig — разрешение имени в адрес

Частые вопросы

Почему в TCP/IP четыре уровня, а в OSI семь?

OSI создавалась как универсальная теоретическая модель, TCP/IP вырос из практики. Прикладной уровень TCP/IP вобрал в себя три верхних уровня OSI, а канальный — два нижних.

Что произойдёт, если в таблице нет подходящего маршрута и нет шлюза по умолчанию?

Пакет отбрасывается, отправителю возвращается ICMP «Destination unreachable». Именно это видно, когда узел «не пингуется» при неверно заданном шлюзе.

Зачем нужен ARP, если есть IP-адреса?

Кадр внутри сегмента доставляется по MAC-адресу. ARP выясняет, какому MAC соответствует нужный IP, — без этого пакет не покинет локальную сеть.

Читайте также

Сделаем работу по этой теме

Опишите задачу — ответим в течение 15 минут в личных сообщениях ВКонтакте, назовём срок и цену. Предоплаты за оценку нет.

  • Оценка заявки бесплатно
  • Правки по замечаниям преподавателя
  • Работы по всем техническим и IT-дисциплинам

Нажимая кнопку, вы соглашаетесь на обработку указанных данных для ответа на заявку.