Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 169
Текст из файла (страница 169)
Метод Балакришнана также решает проблему потерянных сегментов, отправляемых мобильным хостом. Если базовая станция замечает разрыв в порядковых номерах получаемых сегментов, она просит повторить недостшощие байты. Благодаря этим двум исправлениям участок беспроводной связи стал более надежным в обоих направлениях, причем для этого не потребовалось изменять семантику протокола ТСР и даже информировать о возникающих проблемах отправителя. Хотя протокол 13РР и не страдает от тех же самых проблем, что и протокол ТСР, беспроводная связь также представляет для него некоторые трудности. Основная сложность состоит в том, что программы, использующие протокол (1РР, ожидают от него высокой надежности. Они знают, что гарантии не предоставляются, но, тем не менее, надеются, что протокол 1Л)Р почти совершенен.
В условиях беспроводной связи до совершенства будет очень далеко. Программы, способные справляться с потерей Ш)Р-сообщений (но довольно значимой ценой), попадая из окружения, в котором сообщения теоретически могут теряться, но теряются очень редко, в окружение, в котором они теряются постоянно, могут очень сильно потерять в производительности.
Беспроводная связь затрагивает также аспекты, отличныс от производительности. Например, как мобильному хосту найти локальный принтер, чтобы не связываться со своим домашним принтерому В чем-то близкой является проблема получения веб-страницы для локальной соты, даже если ее имя неизвестно. Кроме того, веб-дизайнеры обычно рассчитывают на большую пропускную способность сети.
Они размещают на каждой странице гигантский логотип, для передачи которого по беспроводному каналу потребуется 10 с при каждом обращении к этой странице, что чрезвычайно раздражает пользователей. Беспроводные сети распространяются все шире, поэтому проблемы работы в них протокола ТСР становятся все более острыми. Дополнительную информацию, касающуюся данных вопросов, можно найти в (Ватакаг и др., 2000; СЬап1 и 01х11, 1999; Нпзтоп, 2001; Ху1ошепоз и др., 2001). 632 Глава 6. Транспортный уровень Транзакционный ТСР Мы уже рассматривали в этой главе, как осуществляется удаленный вызов процедуры в клиент-серверных системах. Если запрос и ответ достаточно малы, чтобы поместиться в один пакет, а операция идемпотентна, то можно смело использовать 1Л)Р.
Однако если эти условия не выполняются, применение протокола Щ)Р оказывается менее привлекательным. Например, если ответ может быть довольно объемным, то нужен механизм для последовательного выстраивания частей сообщения и повторной передачи потерянных пакетов. Получается, что речь идет о том, что приложению следует заново изобрести ТСР.
Это, понятное дело, не очень привлекательная перспектива. Однако и ТСР сам по себе в данном случае не кажется слишком привлекательным. Проблема заключается, прежде всего, в эффективности. На рис. 6.33, а показана обычная последовательность пакетов, необходимая для удаленного вызова процедуры. В лучшем случае потребуется обменяться девятью пакетами. Вот они: 1. Клиент посылает пакет 5УУ для установки соединения. 2.
Сервер посв|лает пакет АСК для подтверзкдения приема з 17«'. 3. Клиент выполняет «тройное рукопожатие». 4. Клиент посылает, собственно, свой запрос. 5. Клиент посылает пакет ЛХ, сигнализируюший об окончании передачи. 6. Сервер подтверждает запрос и ЛХ.
7. Сервер посылает ответ клиенту. 8. Сервер посылает пакет ЛУ, сообщающий о том, что он также закончил передачу. 9. Клиент подтверждает ЛХ сервера. И зто в лучшем случае! Если же обстоятельства складываются не очень удачно, то запрос и Лг«клиента подтверждаются раздельно. Раздельно могут подтверждаться и ответ и ЛЖ сервера. Само собой, возникает вопрос: нельзя ли объединить эффективность выполнения ВРС с помощью 1)ВР (всего два сообщения) с надежностью, которую гарантирует ТСР7 Ответ: отчасти, Можно попытаться применить экспериментальный вариант протокола ТСР, называемый транзакционным ТСР (Т/ТСР, ТгапзасВопа1 ТСР).
Протокол Т/ТСР описан в ВРС 1379 и 1644. Центральная идея протокола состоит в том, чтобы немного изменить стандартную последовательность действий, выполняемых при установке соединения, и предоставить возможность передачи данных непосредственно во время установки соединения. Работа Т/ТСР показана на рис, 6.33, б.
В первом пакете клиента содержится бит з" г7у, собственно запрос и Л1у'. В сущности, клиент говорит: «Я хочу установить соединение, вот данные для передачи, и на этом я считаю свою миссию выполненной». Получив запрос, сервер ищет или вычисляет содержимое ответа и выбирает способ ответа. Если ответ укладывается в один пакет, он будет послан так, как показано на рис, 6.33, 6, то есть сервер как бы говорит: «Подтверждаю получение Вопросы производительности 6ЗЗ ашего ЯФ, вот мои т " о вет на запрос, и на этом я считаю свою ми ссию выполнена ЯФ, ной». Клиент подтвеРждает сс ЯЖ рнера, и на этом работа протокола заканчивается.
. Обратите внимание: на весь проц процесс потребовалось всего три сообщения. Сервер Клиент Сервер Клиент Время Время б в Рис.в.зз.удаленныйвызов р ц " в зов процедуры с помощью обычного ТСР (а); удаленный вызов процедуры с помощью Т/ТСР (б) О неко если ответ не укладывается в один па, р р кет, се ве может и не устанавливать бит НИ в первом же пакете. Он посылает столь т, ько пакетов, сколько нужно, прежде чем закрыть соединение в д анном нап авлении. Стоит отметить, что кроме Т/ТСР известны и другие вариации ца тему О ним из таких протоколов является протокол р д пе е ачи с контролем потока дним из т . С е и его свойств можно выделить (ВСТР, Бггеаш Соптго! Тгапзш!ззюп Ргогосо!).
Среди сохранение границ сообщении, несколько р ежимов доставки (например, неупо- ~ю бли ование адресатов), селективрддоченная), множественную адресацию (ду лир в . Тем не менее, когда кто-то предлаганые подтверждения (огетуагс и Мега, 2001), ет улучшения того, что и так прекр р асио аботаег в течение долгих лет, о ычно в х иамет ально противополо возникают споры между сторонниками двух д р иональности» и «Не трогать то, что по- принципов: «Все для расширения функцион ь ка еще не сломалось,. Вопросы производительности ажн ю оль в компьютерных сетях.
Когда Вопросы производительности играют важную роль вится ны вместе, их взаимодействие стано сотни или тысячи компьютеров соединены вм с . Часто эта очень сложным и может привести к р к неп едсказуемым последствиям. асто эта р овольно ительности, причины которои д сложность приводит к низкои производите аз елах мы ассмотрим многие вопросы, святрудно определить. В следующих разделах мы р 634 Глава б. Транспортный уровень ванные с производительностью сетей, определим круг существующих проблем и обсудим методы их разрешения. К сожалению, понимание производительности сетей — это скорее искусство, чем наука. Теоретическая база, допускающая хоть какое-то практическое применение, крайне скудна. Лучшее, что мы можем сделать, — это представить несколько практических метолов, полученных в результате долгих экспериментов, а также привести несколько реально действующих примеров.
Мы намеренно отложили эту дискуссию до того момента, когда будет изучен транспортный уровень в сетях ТСР, чтобы иметь возможность иллюстрировать некоторые места примерами из ТСР. Вопросы производительности возникают не только на транспортном уровне, С некоторыми из них мы уже сталкивались в предыдущей главе. Тем не менее, сетевой уровень в основном занят вопросами маршрутизации и борьбы с перегрузкой. Более глобальные вопросы, касающиеся производительности всей системы в целом, оказываются прерогативой транспортного уровня, поэтому они будут рассматриваться именно в этой главе.
В следующих разделах мы рассмотрим следующие пять аспектов производительности сети. 1. Причины снижения производительности. 2. Измерение производительности сети. 3. Проектирование производительных систем. 4. Быстрая обработка ТРРУ-модулей. 5. Протоколы для будущих высокопроизводительных сетей. Нам потребуется ввести название для единиц данных, которыми обмениваются транспортные сущности. Термин «сегмент», применяемый в протоколе ТСР, в лучшем случае запутывает и никогда не используется в этом смысле за пределами мира ТСР.
Соответствующие АТМ-термины — СБ-РВУ (протокольная единица обмена подуровня конвергенции), БАК-РВУ и СРСЯ-РР0 — применяются только в сетях АТМ. Термин «пакет» относится к сетевому уровню, а сообщения применяются на прикладном уровне. За отсутствием стандартного термина мы будем продолжать называть единицы данных, которыми обмениваются транспортные сущности, ТРАО-модулями. Когда будет иметься в виду ТРЭУ- модуль вместе с пакетом, мы будем использовать в качестве обобщающего термина понятие «пакет», например: «Центральный процессор должен быть достаточно быстрым, чтобы успевать обрабатывать приходящие пакеты в режиме реального времени». При этом будет иметься в виду как пакет сетевого уровня, так и помещенный в него ТРПП-модуль.
Причины снижения производительности компьютерных сетей Некоторые виды снижения производительности вызваны временным отсутствием свободных ресурсов. Если на маршрутизатор вдруг прибывает трафик больше, Вопросы производительности 636 чем он способен обработать, образуется затор, и производительность резко падает. Вопросы перегрузки подробно рассматривались в предыдущей главе. Производительность также снижается, если возникает структурный дисбаланс ресурсов.