logo
сети ЭВМ / Шпора к экзамену

Протоколы транспортного уровня

Задача транспортного уровня – передача данных между процессами с заданным уровнем качества. Выделяют обычно 2 типа передачи:

Заголовок UDP состоит из четырех 2-байтных полей:

Протокол UDP не сложен, он заключается в простой передаче данных между прикладным и сетевым уровнями, а также в примитивном контроле искажений в передаваемых данных. Этот протокол только диагностирует, но не исправляет ошибки, если обнаружена ошибка, протокол просто отбрасывает поврежденную дейтаграмму.

Работая на хосте-получателе, протокол UDP принимает от протокола IP извлеченные из пакетов UDP-дейтаграммы. Полученные из IP-заголовка IP-адрес назначения и из UDP-заголовка номер порта, используются для формирования UDP-сокета, однозначно идентифицирующего приложение, которому направлены данные. Протокол UDP освобождает дейтаграмму от UDP-заголовка. Полученное в результате сообщение он передает приложению на соответствующий UDP-сокет. Т.о., протокол UDP выполняет демультиплексирование на основе сокетов.

При работе на хосте-отправителе протокол TCP рассматривает информацию, поступающую к нему от прикладных процессов, как неструктурированный поток байтов. Поступившие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая называется сегментов и снабжается заголовком.

Логическое (виртуальное) соединение дает возможность участникам обмена следить за тем, чтобы данные не были потеряны, искажены или продублированы, а также чтобы они пришли к получателю в том порядке, в котором были отправлены. Протокол устанавливает логическое дуплексное соединение между двумя прикладными процессами, т.е. каждый из участников может получать и передавать данные.

Соединение устанавливается по инициативе клиентской части приложения. При необходимости выполнить обмен данными с серверной частью приложение-клиент обращается к нижеследующему протоколу TCP, который в ответ на это обращение посылает сегмент-запрос на установление соединения протоколу TCP, работающему на стороне сервера. В числе прочего в запросе содержится флаг SYN. Получив запрос, модуль TCP на стороне сервера пытается создать «инфраструктуру» для обслуживания нового клиента. Он обращается к ОС с просьбой о выделении определенных системных ресурсов для организации буферов, таймеров, счетчиков. Эти ресурсы закрепляются за соединением с момента создания и до момента разрыва. Если на стороне сервера все необходимые ресурсы были получены и все необходимые действия выполнены, то модуль TCP посылает клиенту сегмент с флагами ACK и SYN.

В ответ клиент посылает сегмент с флагом ACK и переходит в состояние установленного логического соединения. Когда сервер получает флаг ACK, он также переходит в состояние ESTABLISHED. На этом заканчивается процедура установки соединения. Соединение может быть разорвано в любой момент любой из сторон. Для этого клиент и сервер должны обменяться сегментами FIN и ACK.