Современные компьютерные сети

Лекция 5

Транспортный уровень

Пономаренко Роман
@rerand0m
rerandom@ispras.ru




2026

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Закрепляем пройденное

Эталонная модель OSI vs TCP/IP

Прикладной (Application)
Представления (Presentation)
Сеансовый (Session)
Транспортный (Transport)
Сетевой (Network)
Канальный (Data link)
Физический (Physical)
Прикладной (Application)
Транспортный (Transport)
Сетевой (Internet)
Канальный (Link)

Транспортный уровень

Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
  • Идентификация приложений
  • Пример протоколов: TCP, UDP

Порты


  • Известные порты: 1-1024
  • Зарегистрированные порты: 1025-49150
  • Динамические порты: 49151-65535


Список зарегистрированных портов

UDP (User Datagram Protocol)


  • Отдельное сообщение - Дейтаграмма
  • Отсутствуют накладные расходы (кроме заголовка)
  • Нет гарантий надёжности
  • Ошибки обрабатывает приложение


RFC 768

UDP (User Datagram Protocol)


0 1 2 3
0 Source port Destination port
4 Length Checksum
8Payload

Клиент-серверная модель

client-server scheme

Соединение зачастую описывается 5 компонентами: порт источника, порт назначения, IP адрес источника, IP адрес назначения и протокол (5 tuple)

TCP

Abandon all hope
ye who enter here.

TCP (Transmission Control Protocol)


  • Работает с потоком данных
  • Отдельное сообщение - Сегмент (потока)
  • Предоставляет гарантии
  • Самостоятельно обрабатывает многие ошибки

RFC 9293 +

Работает с потоком данных?


Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
  • Последовательность сообщений
  • = явный сеанс связи
  • => явные признаки начала и конца сеанса

Работает с потоком данных?

Сеансовый уровень

Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
  • Выделение потоков данных
  • Установление "сеанса связи"
    • Сообщение намерения передачи данных
    • Подтверждение возможности получения данных
    • Согласование окончания сеанса
  • Пример протоколов: TCP, SSL

TCP Заголовок

tcp header

Начало и конец сеанса

tcp syn
tcp fin

Проблема двух армий при завершении, асинхронное завершение RST

Сегмент потока?

tcp fragmentation

Гарантия доставки

tcp ack
(остановка и ожидание)

Maximum segment size (MSS)

diff mtu

UDP vs TCP

UDP

  • Обеспечивает быстрое соединение
  • Низкие накладные расходы
  • Не даёт никаких гарантий
  • Позволяет максимально утилизировать канал сразу

Подходит для приложений, где скорость передачи важнее целостности.

TCP

  • Долго устанавливает соединение
  • Много разных сложных механизмов
  • Гарантия доставки сообщений
  • Гарантия порядка сообщений (потока)
  • Контроль потока
  • Контроль перегрузки

Подходит в большинстве случаев)

Sockets

syscall
socketСоздать новый сокет
bindСвязать локальный endpoint с сокетом
listenОбъявить о желании принять соединение
acceptПассивно установить входящее соединение
connectАктивно установить соединение
send/writeОтправить данные
recv/readПолучить данные
close/shutdownРазорвать соединение

TCP

tcp flow

TCP

tcp flow rst

UDP

tcp flow rst

Литература

  • Таненбаум Э., Фимстер Н., Уэзеролл Д. - Компьютерные сети. 6-е изд.
    • Пункты 6.1, 6.2, 6.4.1, 6.5 (до 6.5.8)
  • В. Олифер, Н. Олифер - Компьютерные сети. Принципы, технологии, протоколы. 6-е изд.
    • Глава 15 (до Концепции скользящего окна)