ШнО»нь1М отличием TCP от OOP является то, что на протокол TCP возложена допошитель- : пая задача—обеспечить надежную доставку сообщений, используя в качестве ос новы иена* д0ж№йдейгяграммныйпрогЬкол /я
На рис. 19.5 показаны сети, соединенные маршрутизаторами, на которых установлен протокол IP. Установленные на конечных узлах протокольные модули TCP решают задачу обеспечения надежного обмена данными путем установления между собой логических соединений. Благодаря логическому соединению TCP следит, чтобы передаваемые сегменты не были потеряны, не были продублированы и пришли к получателю в том порядке, в котором были отправлены.
При установлении логического соединения модули TCP договариваются между собой о параметрах процедуры обмёна данными. В протоколе TCP каждая сторона соединения посылает противоположной стороне следующие параметры:
□ максимальный размер сегмента, который она готова принимать;
□ максимальный объем данных (возможно несколько сегментов), которые она разрешает другой стороне передавать в свою сторону, даже если та еще не получила квитанцию на предыдущую порцию данных (размер окна);
□ начальный порядковый номер байта, с которого она начинает отсчет потока данных в рамках данного соединения.
В результате переговорного процесса модулей TCP с двух сторон соединения определяются параметры соединения. Одни из них остаются постоянными в течение всего сеанса связи, а другие адаптивно изменяются. В частности, в зависимости от загрузки буфера принимающей стороны, а также надежности работы сети динамически изменяется размер окна отправителя. Создание соединения означает также выделение операционной системой на каждой стороне соединения определенных системных ресурсов: для организации буферов, таймеров, счетчиков. Эти ресурсы будут закреплены за соединением с момента создания и до момента разрыва.
Логическое TCP-соединение однозначно идентифицируется парой сокетоа..
Каждый сокет одновременно может участвовать в нескольких соединениях. Так, если (IPI, nl), (IP2, п2), (IP3, пЗ) — сокеты трех разных приложений, где IP1,
IP2, IP3 — их IP-адреса, a nl, п2, пЗ — номера их TCP-портов, то возможно образование следующих соединений:
□ соединение 1 - {(IP2, n2), (IPI, nl)};
□ соединение 2 - {(IPI, nl), (IP3, пЗ)};
□ соединение 3 - {(IP2, n2), (IP3, пЗ)}.
На рис. 19.6 показаны соединения 1 и 3, образованные сокетом (IP2, п2).
А теперь рассмотрим на примере, как протокол TCP выполняет демультиплексирование. Пусть некий поставщик услуг оказывает услугу по веб-хостингу, то есть на его компьютере клиенты могут устанавливать свои веб-серверы. Веб-сер- вер основан на протоколе прикладного уровня HTTP, который, в свою очередь, использует протокол TCP. TCP ожидает запросы от веб-клиентов (браузеров), прослушивая хорошо известный порт 80.
На рис. 19.7 показан вариант хостинга с двумя веб-серверами — сервером www1. model.ru, имеющим IP-адрес IP1, и сервером www2.tour.ru с адресом IP2. К каждому из них может обращаться множество клиентов, причем клиенты могут одновременно работать как с сервером WWW1, так и с сервером WWW2. Работа каждого клиента требует сохранения прочитанных страниц, параметров и настроек сеанса связи, то есть образования отдельного логического соединения. Такое соединение создается протоколом TCP для каждой пары клиент-сервер.
На рисунке показаны два браузера, имеющие соответственно сокеты (IPk, nk) и (IPm, nm). Пользователь браузера к обращается одновременно к серверам WWW1 и WWW2. Наличие отдельных соединений для работы с каждым из этих серверов гарантирует разделение информационных потоков — у пользователя нико- "та не возникает вопроса, каким сервером ему была послана та или иная страница. Одновременно с пользователем браузера к с сервером WWW2 работает пользователь браузера т. И в этом случае отдельные логические соединения, в рамках которых идет работа обоих пользователей, позволяют изолировать их информационные потоки. На рисунке показаны буферы, количество которых определяется не числом веб-серверов и не числом клиентов, а числом логических соединений. Сообщения в эти буферы направляются в зависимости от значений сокетов как отправителя, так и получателя.
wwwl.model.ru - IP1 www2.tour.ru - IP2 Браузеры Рис. 19.7. Демультиплексирование TCP на основе соединений |
Таким образом, протокол TCP осуществляет демультиплексирование на основе соединений.