Транспортный уровень (четвёртый уровень в модели OSI) обеспечивает надёжную передачу данных между процессами на разных узлах сети. Основные задачи транспортного уровня включают:
Транспортный уровень позволяет нескольким приложениям на одном устройстве использовать один сетевой интерфейс одновременно. Мультиплексирование распределяет входящие данные между различными приложениями, а демультиплексирование позволяет маршрутизировать данные обратно к нужному приложению, используя уникальные порты.
Транспортный уровень отвечает за контроль целостности данных и повторную передачу потерянных или повреждённых сегментов, что обеспечивает надёжную доставку. Протокол TCP, например, использует механизмы подтверждения (ACK) и контрольные суммы для обеспечения целостности данных.
Протоколы транспортного уровня регулируют скорость передачи данных, чтобы избежать перегрузки приёмного устройства. TCP, например, использует окно перегрузки (congestion window) и окно управления потоком (flow control window) для управления объёмом передаваемых данных.
Транспортный уровень отслеживает условия перегрузки в сети и регулирует объём трафика для предотвращения избыточного потока данных. TCP, например, уменьшает размер окна передачи данных при обнаружении потерь пакетов, что помогает избежать перегрузок.
Транспортный уровень разбивает данные на сегменты (сегментация), а затем объединяет их на стороне получателя (реассемблирование), чтобы восстановить исходные данные. Это позволяет передавать данные любой длины независимо от ограничений на размер пакетов в сети.
Транспортный уровень использует механизмы для обнаружения и исправления ошибок в данных, таких как контрольные суммы. При обнаружении ошибки сегмент может быть передан повторно, что повышает надёжность связи.
На транспортном уровне адресация обеспечивает доставку данных к конкретным приложениям и процессам на устройстве получателя. В отличие от сетевого уровня, который использует IP-адреса для идентификации узлов, транспортный уровень использует номера портов для различения процессов на одном устройстве.
Номера портов — это 16-битные целые числа, которые идентифицируют приложения или процессы, использующие транспортный уровень. Порты делятся на несколько диапазонов:
Когда клиент инициирует соединение, ему назначается случайный динамический порт, а сервер слушает входящие соединения на определённом стандартном порте. Например:
Транспортный уровень выполняет важные задачи, обеспечивающие надёжность, безопасность и контроль передачи данных между приложениями. Адресация на транспортном уровне позволяет различным приложениям использовать одно сетевое подключение и доставляет данные к нужным процессам с использованием номеров портов.