Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы (4-ое изд.) - 2010 - обработка (953099), страница 140
Текст из файла (страница 140)
Так, на рис. 17.8 по- гп« Гоч 1РЯ тг»в «» 56З Протоколы транспортного уровня ТСР н ЦОР одному приложению — АРР(.1, АРР1.2 и АРР13, сокеты которых — соответственно (1Р1, а1), (1Р2, п2), (1РЗ, пЗ), а номера ТСР-портов приложений — п1, п2, пЗ. Соквт (!Р2, л2 Рис. 1 76. Один соквт может участвовать в нескольких соединениях На рисунке показаны два логических соединения, которое установило приложение 2 с приложением 1 и приложением 3.
Логические соединения идентифицируются как ((1Р2, п2), (1Р1, п1)) и ((1Р2, п2), (! РЗ, пЗ)) соответственно. Мы видим, что в обоих соединениях участвует один и тот же сокет — (1Р2, п2). А теперьрассмотрим на примере, как протокол ТСР выполняет демультиплексирование. Пусть некий поставщик услуг оказывает услугу по веб-хостингу, то есть на его компьютере клиенты могут разворачивать свои веб-серверы.
Веб-сервер основан на протоколе прикладного уровня НТТР, который передает свои сообщения в ТСР-сегментах. Модуль ТСР ожидает запросы от веб-клиентов (браузеров), «прослушивая» хорошо известный порт 80. Нз рис. 17.9 показан вариант хостинга с двумя веб-серверами — сервером авиз людепго, имеющим 1Р-адрес 1Р1, и сервером»лннялоог.го с адресом 1Р2, К каждому иэ них может сбрашаться множество клиентов, причем клиенты могут одновременно работать как с сервером влни1, так и с сервером вмли2. Для каждой пары клиент-сервер протоколом ТСР создается отдельное логическое соединение.
Нз рисунке показаны два браузера, имеющие соответственно сокеты (1Рь лз) и (1Р, и„). Пользователь браузера й обращается одновременно к серверам %%%1 и %%%2. Наличие отдельных соединений для работы с каждым из этих серверов обеспечивает не только нздежную доставку, но и разделение информационных потоков — у пользователя никогда зе возникает вопроса, каким сервером ему была послана та или иная страница.
Одновреневно с пользователем браузера л с сервером %%%2 работает пользователь браузера т. И в этом случае отдельные логические соединения, в рамках которых идет работа обоих пользователей, позволяют изолировать их информационные потоки. На рисунке показаны Глава 17. Базовые протоколы ТСР/1Р ааа1 лионе)лп -!Р1 (й"© ааа2.!оскп! - !Р2 пение -сервер ааа2 (1Р2, 80)) Соединение брауаер К-сервер ааа ((1))„пк ), (1Р1, 80 пение -сервер ааа2 (1Р2, 80)» Буферь Браузеры Рис. 17.9.
Демультиплексироеание протокола ТСР на основе соединений информации, йоступвощвй найриюищной дй!Ртнтп жв„йв оеньее ийемтмфвцируюввяа.-'. Повторная передача и скользящее окно Один из наиболее естественных приемов, используемых для организации надежной передачи — это квитирование.
Отправитель отсылает данные и ждет, пока к нему не придет квитанция, подтверждающая, что его данные благополучно дошли до адресата. В протоколе ТСР используется частный случай квитирования — алгоритм скользящего окна. Прежде чем перейти к подробному рассмотрению особенностей реализации этого алгоритма в про. токоле ТСР очень полезно обсудить его с общих позиций. Итак, существует два метода организации процесса обмена квитанциями: метод простоя источника и метод скользящего окна.
Метод простоя источника требует, чтобы источник, пославший кадр (в данном случае не имеет значения, какое название используется для единицы передаваемых данных), дожидался от приемника квитанции, извещающей о том, что исходный кадр получен и данные в нем корректны, и только после эпюго посылал следующий кадр (или повторял искаженный). Если же квитанция в течение тайм-аута не пришла, то кадр (или квитанция) считается утерянным и его передача повторяется. На рис. 17.10 показано, что второй кадр буферы, количество которых определяется не числом веб-серверов и не числом клиентов, а числом логических соединений. Сообщения в эти буферы направляются в зависимости от значений сокетов как отправителя, так и получателя.
Отсюда можно сделать вполне конкретный вывод. Протоколы транспортного уровня ТСР и МОР отсылается только после того, как пришла квитанция, подтверждающая доставку первого кадра Однако затем произошла длительная пауза в отправке следующего третьего кадра. В течение этой паузы источник был вынужден повторить передачу кадра 2, так как квитанция ма первую его копию была потеряна. Понятно, что при таком алгоритме работы источника принимающая сторома должна уметь распознавать дублирующиеся кадры и избавляться от них.
Повторная передача кадра 2 Отправлен кадры на стороне отпрввитвп Полученны квитанции АСК Полученн кадры нв сторон приемника Время доставки кадра от отправителя к получателю к отправителю пэдрв Рис. 17.10. Метод простоя источника Достаточно очевидно, что при использовании данного метода производительность обмема ванными ниже потенциально возможной — передатчик мог бы посылать следующий кадр сразу же после отправки предыдущего, но он обязан ждать прихода квитанции. Второй метод называется методом скользящего окна (зйд)пй ибодова).
В этом методе для повышения скорости передачи данных источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе еще до получения на эти кадры квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Рисунок 17.11 иллюстрирует применение данного метода для окна размером 5 кадров. В начальный момент, когда еще не послано ни одного кадра, окно определяет диапазон номеров кадров от 1 до 5 включительно.
Источник начинает передавать кадры и через какое-то время получать в ответ квитанции. Для простоты предположим, что квитанции поступают в той же последовательности (но не обязательно в том же темпе), что и кадры, которым они соответствуют. В момент получения отправителем квитанции 1 окно сдвигается на одну позицию вверх, определяя новый диапазон разрешенных к отправке кадров (от 2 до 6). Процессы отправки пакетов и получения квитанций идут достаточмо независимо друг от круга В нашем примере отправитель продолжает передавать кадры, но некоторое время ке получает на них квитанции.
После передачи кадра 6 окно исчерпывается, и источник приостанавливает передачу. Главе 17. Базовые протоколы ТОР/1Р днапаон номеров калроа, рисованных к отправке Отп реале кадры н отправи Полученные кадры не стороне приемнике Рис. 17.11. Метод скользящего окна После получения квитанции 2 (на кадр 2) окно сдвигается вверх на единицу, определяя диапазон разрешенных к передаче кадров от 3 до 7. Аналогичное «скольжение» окна вверх происходит после получения каждой кеитландпи: окно сдвигается вверх на 1, но его размер при этом не меняется и остается равным 5. После прихода квитанции 8 окно оказывается в диапазоне от 9 до 13 и остается таковым достаточно долго, так как по каким-то причинам источник перестает получать подтверждения о доставке кадров. Отправив последний разрешенный кадр 13, передатчик снова прекращает передачу с тем, чтобы возобновить ее после прихода квитанции 9.
При отправке калра в источнике устанавливается тайм-аут. Если за установленное время квитанция на отправленный кадр не придет, то кадр (или квитанция на него) считается утерянным, и кадр передается снова. Если же поток квитанций поступает регулярно в пределах допуска в 5 кадров, то скорость обмена достигает максимально возможной величины для данного канала и принятого протокола.
В общем случае метод скользящего окна более сложен в реализации, чем метод простоя источника, так как передатчик должен хранить в буфере копии всех кадров, на которые пока не получены квитанции. Кроме того, при использовании данного метода требуется отслеживать несколько параметров алгоритма, таких как размер окна, номер кадра, на который получена квитанция, номер кадра, который еще можно передать до получения новой квитанции. Протоколы транспортного уровня ТСР и оСР Реализация метода скользящего окна в протоколе ТСР хотя вг(имицв(вввредввевмых дщнньж46взввн(мйьЩ>.являвтол оегмвит (аналог кадра в данном ввнвкйтв),(рею.апрвдвввивийь)ио(кввтфиувйВ)вгл(и(валбкйпг~~епйзуктурироввмтнопотока дмеввь мврвдввввьюго врМоавле(вм' лрвт~кв1йьдсВ,.'-, В коде переговорного процесса модули ТСР обоих участвующих в обмене сторон договариваются между собой о параметрах процедуры обмена данными.
Одни из них остаются постоянными в течение всего сеанса связи, другие в зависимости, например, от интенсивности трафика и/или размеров буферов адаптивно изменяются. Одним из таких параметров является начальный номер байта, с которого будет вестись отсчет в течение всего функционирования данного соединения. У каждой стороны свой мачальный момер. Нумерация байтов в пределах сегмемта осуществляется, начиная от заголовка (рис. 17.12).
ТСР.сепгеят Байт с калечным номером Байт с начальным номером Рис. 17. 12. Нумерация байтов в ТСР-сегыенте Когда отправитель посылает ТСР-сегмент, он помещает в поле последовательного манера номер первого байта данного сегмента, который служит идентификалюром сегмента. На рис. 17.13 показаны четыре сегмента размером 1460 байт и один — 870 байт.
Идентификаторами этих сегментов являются номера 32600, 34060, 35520 и т. д. На основании этих номеров получатель ТСР-сегмента не только отличает данный сегмент от других, но и познциомирует полученный фрагмент относительно общего потока байтов. Кроме того, он может сделать вывод, например, что полученный сегмент является дубликатом или что между двумя полученными сегментами пропущены данмые и т. д. 38440 38980 36620 34060 32600 -1460, 1460 ' ,';870 .' '; 1460,: .