Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Т2. Связь_Таненбаум_СРС_ПРИС.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.59 Mб
Скачать

2.1. Уровни протоколов 89

д анных реального времени, ничего не говоря о механизмах гарантированной дос­тавки этих данных. Кроме того, в нем определен протокол для мониторинга и управления передачей RTP-пакетов [406].

TCP в архитектуре клиент-сервер

Взаимодействие клиент-сервер в распределенных системах часто осуществляется путем использования транспортного протокола базовой сети. С ростом популяр­ности Интернета нередко можно наблюдать построение приложений клиент-сер­вер и систем на базе TCP. Преимущества протокола TCP по сравнению с UDP состоят в том, что он надежно работает в любой сети. Очевидная оборотная сто­рона — протокол TCP создает значительную дополнительную нагрузку на сеть, особенно в тех случаях, когда базовая сеть высоконадежна, например, в локаль­ных сетях.

Когда на карту поставлены производительность и надежность, альтернативой всегда является протокол UDP в сочетании с дополнительными процедурами контроля ошибок и потоков, оптимизированными для конкретного приложения. Оборотная сторона этого подхода состоит в том, что приходится проделывать массу дополнительной работы, а также в том, что полученное решение будет ча­стным, снижающим открытость системы.

Протокол TCP во многих случаях непривлекателен из-за невозможности при­способить его для поддержки синхронного поведения запрос-ответ, используемого во многих взаимодействиях клиент-сервер. На рис. 2.4, а показано применение протокола TCP для поддержки взаимодействия клиент-сервер в нормальных ус­ловиях (когда сообщения не пропадают). Сначала клиент инициирует установ­ление соединения, которое происходит по трехэтапному протоколу установле­ния связи (первые три сообщения на рисунке). Этот протокол необходим для достижения договоренности о порядке нумерации пакетов, пересылаемых через соединение (детали можно найти в [446]). Когда соединение установлено, кли­ент посылает свой запрос (сообщение 4), сопровождаемый пакетом, требующим от сервера разорвать соединение (сообщение 5).

Сервер отвечает немедленным подтверждением приема запроса от клиента, которое скомпоновано с подтверждением разрыва соединения (сообщение 6). Затем сервер выполняет требуемую работу и посылает клиенту ответ (сообще­ние 7), также сопровождаемый требованием разорвать соединение (сообщение 8). Клиент должен только послать подтверждение разрыва связи на сервер (сообще­ние 9).

Ясно, что большая часть дополнительной нагрузки на сеть связана с управле­нием соединением. При использовании TCP для управления взаимодействием клиент-сервер гораздо дешевле будет скомбинировать установление соединения с немедленной посылкой запроса, а посылку ответа — с разрывом соединения. Получившийся протокол носит название TCP для транзакций (TCP for Tran­sactions), сокращаемое до Т/ТСР. То, как функционирует этот протокол в нор­мальных условиях, можно увидеть на рис. 2.4, б.

В нормальной обстановке происходит следующее: клиент посылает одно со­общение (сообщение 1), содержащее три порции информации: запрос на уста-

92 Глава 2. Связь

новление соединения, собственно запрос к серверу и запрос, сообщающий серве­ру, что после этого он может немедленно разорвать соединение.

Сервер отвечает только после того, как обработает запрос. Он может послать данные, для передачи которых и создавалось соединение, и немедленно потребо­вать его разрыва, что иллюстрирует сообщение 2. После этого клиенту остается только подтвердить разрыв соединения (сообщение 3).

Протокол Т/ТСР, созданный как расширение TCP, автоматически преобра­зуется в нормальный протокол TCP, если другая сторона не поддерживает это расширение. Дополнительную информацию по TCP/IP можно найти в [437].