Средства анализа и оптимизации локальных сетей
Н.А. Олифер, В.Г. Олифер
2. Параметры оптимизации транспортной подсистемы
На выбранный критерий оптимизации сети влияет большое количество параметров различных типов. В наибольшей степени на производительность сети влияют:
2.1. Влияние на производительность сети типа коммуникационного протокола и его параметров
Задача выбора коммуникационных протоколов может решаться относительно независимо для канального уровня с одной стороны (Ethernet, TokenRing, FDDI, FastEthernet, ATM) и пары "сетевой - транспортный протокол" с другой стороны (IPX/SPX, TCP/IP, NetBIOS).
Каждый протокол имеет свои особенности, предпочтительные области применения и настраиваемые параметры, что и дает возможность за счет выбора и настройки протокола влиять на производительность и надежность сети. Настройка протокола может включать в себя изменение таких параметров как:
2.1.1. Номинальная и эффективная пропускная способность протокола
При настройке сети необходимо различать номинальную и эффективную пропускные способности протокола. Под номинальной пропускной способностью обычно понимается битовая скорость передачи данных, поддерживаемая на интервале передачи одного пакета. Эффективная пропускная способность протокола - это средняя скорость передачи пользовательских данных, то есть данных, содержащихся в поле данных каждого пакета. В общем случае эффективная пропускная способность протокола будет ниже номинальной из-за наличия в пакете служебной информации, а также из-за пауз между передачей отдельных пакетов.
Рассмотрим подробнее разницу между номинальной и эффективной пропускными способностями на примере протокола Ethernet.
На рисунке 2.1 приведена временная диаграмма передачи кадров Ethernet минимальной длины. Номинальная пропускная способность протокола Ethernet составляет 10 Мб/с, что означает, что биты внутри кадра передаются с интервалом в 0.1 мкс. Кадр состоит из 8 байт преамбулы, 14 байт служебной информации - заголовка, 46 байт пользовательских данных и 4 байт контрольной суммы, всего - 72 байта или 576 бит. При номинальной пропускной способности 10 Мб/c время передачи одного кадра минимальной длины составляет 57.6 мкс.
Рис. 2.1. Временная диаграмма передачи кадров Ethernet
По стандарту между кадрами должна выдерживаться технологическая пауза в 9.6 мкс. Поэтому период повторения кадров составляет 57.6 + 9.6 = 67.2 мкс. Отсюда эффективная пропускная способность протокола Ethernet при использовании кадров минимальной длины составляет 46 х 8/67.2 = 5.48 Мб/c.
Реальная пропускная способность по пользовательским данным в сети может быть только меньше приведенного выше значения 5.48 Мб/с (для кадров данного размера). Отношение реальной пропускной способности сегмента, канала или устройства к его эффективной пропускной способности называется коэффициентом использования (utilization) сегмента, канала или устройства соответственно.
Эффективная пропускная способность существенно отличается от номинальной пропускной способности протокола, что говорит о необходимости ориентации именно на эффективную пропускную способность при выборе типа протокола для того или иного сегмента сети. Например, для протокола Ethernet эффективная пропускная способность составляет примерно 70% от номинальной, а для протокола FDDI - около 90%.
Пропускная способность протокола часто измеряется и в количестве кадров, передаваемых в секунду. Нетрудно подсчитать, что для протокола Ethernet эта характеристика для кадров минимальной длины составляет 14880 К/с. Понятно, что при измерении пропускной способности в кадрах в секунду, нет смысла разграничивать номинальную и эффективную пропускную способности.
Почти все протоколы канального уровня локальных сетей подерживают одну фиксированную номинальную пропускную способность: Ethernet - 10 Мб/с, TokenRing - 16 Мб/c (4 Мб/c может поддерживаться для совместимости со старым оборудованием), FDDI, FastEthernet и 100VG-AnyLAN - 100 Мб/c. Только протокол АТМ может работать с различными номинальными битовыми скоростями - 25, 155 и 622 Мб/c, хотя переход от одной скорости к другой требует замены сетевых адаптеров или интерфейсов коммутаторов или маршрутизаторов.
Поэтому, если для улучшения работы сети мы хотим варьировать номинальной пропускной способностью протокола, то для этого нам потребуется заменять один протокол на другой - мера возможная, но требующая значительных материальных и физических затрат.
2.1.2. Влияние на производительность алгоритма доступа к разделяемой среде и коэффициента использования
Время доступа к среде определяется как логикой самого протокола, так и степенью загруженности сети. В локальных сетях пока доминируют разделяемые среды передачи данных, требующие выполнения определенной процедуры для получения права передачи кадра. В протоколах Ethernet и FastEthernet используется алгоритм случайного доступа с обнаружением коллизий CSMA/CD, а в протоколах TokenRing и FDDI - алгоритм, основанный на детерминированной передаче токена доступа. Новый стандарт 100VG-AnyLAN использует алгоритм доступа DemandPriority, при котором решение о предоставлении доступа принимается центральным элементом - концентратором.
Время доступа к среде складывается из номинального времени доступа и времени ожидания доступа. Номинальное время доступа определяется как время доступа к незагруженной среде, когда узел не конкурирует с другими узлами. Номинальное время доступа к незанятой среде протоколов TokenRing и FDDI в 5 - 10 раз превышает соответствующее время протокола Ethernet, так как в незанятой сети Ethernet станция практически мгновенно получает доступ, а в сети TokenRing она должна дождаться прихода маркера доступа.
Другая составляющая времени доступа к среде - время ожидания - зависит от задержек, возникающих из-за разделения передающей среды между несколькими одновременно работающими станциями. Время ожидания зависит как от алгоритма доступа, так и от степени загруженности среды, причем зависимость времени ожидания от степени загрузки (коэффициента использования) сети для большинства протоколов носит экспоненциальный характер.
Наиболее чувствителен к загруженности среды метод доступа протокола Ethernet, для которого резкий рост времени ожидания начинается уже при величинах коэффициента использования в 30% - 50%. Поэтому для нормальной работы сети сегменты Ethernet не рекомендуется нагружать свыше 30% (рис. 2.2). Даже если среднее значение коэффициента использования находится в норме, но имеются пиковые значения, превышающие 60%, то это является свидетельством того, что сеть работает ненормально и требует проведения дополнительных исследований.
Рис. 2.2. Характеристики пропускной способности сети Ethernet
Сети TokenRing и FDDI можно эксплуатировать и при больших значениях коэффициента использования - до 60%, а иногда и до 80%. Компания Hewlett-Packard, продвигающая на рынок технологию 100VG-AnyLAN, считает, что эти сети могут нормально работать и при загрузке в 95%.
На рисунке 2.3 помещены графики зависимости среднего времени ожидания доступа к среде для протоколов Ethernet и TokenRing от коэффициента использования сети. Графики показывают, что при близком общем характере зависимости резкое возрастание времени ожидания наступает в сетях Ethernet гораздо раньше, чем в сетях TokenRing.
Рис. 2.3. Сравнение задержек доступа к среде в сетях Ethernet и TokenRing
2.1.3. Влияние размера кадра и пакета на производительность сети
Размер пакета может существенным образом повлиять на эффективную пропускную способность протокола, а значит и на производительность сети. Выясним на примере, как изменится эффективная пропускная способность протокола Ethernet, если вместо кадров минимальной длины при обмене данными будут использоваться кадры максимальной длины с полем данных в 1500 байт, как это определено в стандарте.
Общая длина кадра вместе с преамбулой, заголовком и контрольной суммой составит в этом случае 8+14+1500+4 = 1526 байт или 12208 бит. Время передачи такого кадра составит 1220.8 мкс, а период повторения кадров - 1220.8 +9.6 = 1230.4 мкс.
Эффективная пропускная способность при этом равна (1500 х 8)/1230.4 = 9.75 Мб/c.
Полученный результат говорит о том, что при увеличении размера пакета эффективная пропускная способность протокола Ethernet существенно, почти в 2 раза, увеличилась - с 5.48 Мб/с до 9.75 Мб/с (рис. 2.2). Аналогичный рост характерен для всех протоколов и это говорит о том, что размер пакета - один из тех параметров, которые в наибольшей степени влияют на производительность сети.
Размер пакета конкретного протокола обычно ограничен максимальным значением поля данных (MaximumTransferUnit, MTU), определенным в стандарте на протокол.
Протоколы локальных сетей имеют следующие значения MTU:
Протоколы верхних уровней, начиная с сетевого, инкапсулируют свои пакеты в кадры протоколов канального уровня, поэтому ограничения, существующие на канальном уровне, являются общими ограничениями максимального размера пакета для протоколов всех уровней.
Необходимо отметить, что повышение размера кадра увеличивает пропускную способность сети только в том случае, когда данные в сети редко искажаются или теряются, то есть при устойчивой, надежной работе сети. В противном случае увеличение размера пакета может привести не к увеличению, а к снижению пропускной способности, так как сеть будет повторно передавать большие порции информации. Для каждого уровня искажений данных можно подобрать рациональный размер пакета, для которого пропускная способность сети будет максимальной.
Максимальный размер пакета только создает предпосылки для повышения пропускной способности, так как в конечном счете от приложений зависит, будет ли использована данная максимальная величина поля данных или нет. Если, например, приложение ведет работы с базой данных и пересылает на сервер SQL-запросы, получая в ответ по одной короткой записи, то максимальный размер поля данных в 4 или 16 Кбайт никак не поможет повысить пропускную способность сети. При обращении же приложения к файловому серверу для пересылки мультимедийного файла размером в несколько мегабайт наличие возможности пересылать файл частями по 16К безусловно повысит пропускную способность сети по сравнению с вариантом пересылки файла частями по 1500 байт.
Настройка размера пересылаемых порций данных обычно происходит на транспортном уровне стека протоколов и, возможно, на прикладном, если разработчик приложения предусмотрел такую возможность.
Работа с пакетами больших размеров повышает производительность сети не только за счет уменьшения накладных расходов на служебную информацию заголовка. При использовании больших пакетов повышается производительность коммуникационного оборудования, работающего с кадрами и пакетами, то есть мостов, коммутаторов и маршрутизаторов. Это происходит из за того, что при передаче одного и того же объема информации число используемых больших пакетов существенно меньше, чем число маленьких, а так как коммуникационное оборудование тратит определенное время на обработку каждого пакета, то и временные потери продвижения пакетов мостами, коммутаторами и маршрутизаторами при использовании больших пакетов будут меньше.
2.1.4.Назначение максимального размера кадра в гетерогенной сети
Производительность сети может резко упасть из-за несогласованности максимального размера кадра в различных частях составной гетерогенной сети (рис. 2.4).
Если в каждой из частей такой сети используется свой протокол канального уровня со своим значением MTU, то проблема согласования разных значений MTU может возникнуть при передаче кадров из сети с большим значением MTU в сеть с меньшим значением MTU. Например, при передаче кадра размером в 2048 байт из сети FDDI в сеть Ethernet поле данных кадра FDDI не помещается в поле данных кадра Ethernet, максимальный размер которого равен 1500 байт.
Все существующие протоколы канального уровня локальных сетей не предусматривают возможности динамической фрагментации кадров с последующей их сборкой в исходный кадр. Функции фрагментации пакетов реализованы только в протоклах сетевого уровня, и то не во всех - из наиболее распространенных протоколов сетевого уровня только протокол IP поддерживает функцию динамической фрагментации. Поэтому при передаче кадров между сетями с различными значениями MTU возникающую проблему можно решить двумя способами - либо путем применения IP-маршрутизатора, который будет фрагментировать IP-пакеты таким образом, чтобы они умещались в MTU канального протокола (рис.2.4б), либо путем ограничения MTU во всех составных сетях до значения, равного минимальному MTU по всему набору протоколов, применяемых в гетерогенной сети (рис. 2.4в). В приведенном примере для этого администратору необходимо установить во всех сетях максимальный размер MTU, равный MTU сетей Ethernet, то есть 1500 байт.
Рис. 2.4. Проблема согласования максимального размера кадров в гетерогенной сети
Выбор одного из этих вариантов не очевиден, даже если оптимизация ведется только по критерию производительности, а стоимость решения во внимание не принимается. Маршрутизатор вообще работает не очень быстро, а выполнение фрагментации приводит к дополнительному замедлению продвижения пакетов. Поэтому при использовании оригинальных значений MTU в отдельных частях составной сети выигрыш в пропускной способности, полученный за счет использования пакетов большой длины, может быть сведен на нет замедлением продвижения пакетов маршрутизаторами, выполняющими операцию фрагментации. Если скорость работы гетерогенной сети очень важна, то для достижения максимальной производительности необходимо провести натурное или имитационное моделирование двух подходов - с фрагментацией и с ограничением MTU.
Многие приложения и протоколы прикладного уровня умеют динамически находить в составной гетерогенной сети такое значение MTU, которое позволяет выполнять обмен данными с требуемым сервером. Например, клиентская часть файлового сервиса сетей NovellNetWare первоначально пытается установить связь с сервером с использованием максимально возможного размера кадра протокола той сети, к которой подключен клиентский компьютер. Если в течение заданного тайм-аута клиент не получает ответа, то он начинает уменьшать размер кадра до тех пор, пока ответы не начнут поступать.
В сети Internet для уменьшения перегрузок администраторы также начали широко применять подобную технику. Вместо динамической фрагментации используется предварительная процедура выяснения минимального значения MTU вдоль маршрута следования пакетов к серверу назначения. Эта процедура состоит в следующем. Пакеты IP, используемые в процедуре определения MTU, отправляются с установленным значением признака DF (Don'tFragment), который запрещает маршрутизаторам фрагментировать данный пакет даже при невозможности инкапсулировать его в кадр канального уровня очередной сети. В таком случае маршрутизаторы возвращают узлу-отправителю сообщение по протоколу ICMP "Требуется фрагментация, а бит DF установлен". Узел-отправитель, получив такое сообщение должен уменьшить размер отправляемого пакета и вновь попытаться передать его узлу назначения с установленным битом DF, и так до тех пор, пока сообщения о невозможности доставки не перестанут приходить от маршрутизаторов, находящихся на пути следования. После этого узел-отправитель может начать передачу данных кадрами такого размера, который не требует фрагментации ни в одной из составных сетей. Такая техника, называемая PathMTUDiscovery (исследование MTU на пути следования), принята в качестве стандартной в новой версии протокола IP - IPv6, c целью освобождения маршрутизаторов от дополнительной работы по фрагментации.
При использовании протоколов, не умеющих фраментировать пакеты, таких как IPX, техника исследования MTU является единственно возможной для организации устойчивой работы в составных гетерогенных сетях.
2.1.5. Время жизни пакета
Параметр, который определяет, как долго может путешествовать пакет по составной сети, имеется во многих протоколах сетевого уровня. В протоколе IP этот параметр называется Time-To-Live, TTL (Время жизни), а в протоколе IPX - Distance (Расстояние). Этот параметр используется для того, чтобы маршрутизаторы, обрабатывающие заголовки сетевого протокола, имели информацию о том, как долго перемещался пакет по сети до того, как прибыл в данный маршрутизатор. Если пакет путешествует по сети слишком долго, то имеется большая вероятность, что он по каким-то причинам "заблудился". Причинами некорректного перемещения пакетов по сети могут быть неверные значения таблиц маршрутизации в некоторых маршрутизаторах, которые в свою очередь являются следствием ошибок администраторов при ручном формировании таблиц, либо несовершенством протоколов обмена маршрутной информации. Например, протокол RIP иногда неустойчиво работает при изменениях состояния сети - отказе каналов связи, отказе, появлении или отключении других маршрутизаторов и т.п.
"Заблудившиеся" пакеты удаляются маршрутизаторами из сети для того, чтобы на них впустую не тратилась часть пропускной способности каналов и маршрутизаторов.
В протоколе IP поле TTL устанавливается узлом-отправителем в некоторое ненулевое значение, а маршрутизаторы при продвижении пакета уменьшают его, обычно на 1. Пакет удаляется из сети в том случае, если после уменьшения значение поля TTL становится равным 0.
В протоколе IPX поле Distance обрабатывается по-другому - узел-отправитель устанавливает его в 0, а каждый маршрутизатор наращивает его на 1. Пакет удаляется из сети при достижении этим полем значения 16.
Начальное значение поля времени жизни в сети, работающей по протоколу IP, является настраиваемым параметром, который влияет на производительность и надежность работы сети. При увеличении начального значения поля TTL пакеты могут пересекать большее число промежуточных сетей, следовательно, потенциально вероятность успешной доставки пакета любому абоненту большой сети возрастает, а, значит, производительность может повыситься за счет уменьшения доли "недошедших", отброшенных по дороге пакетов. Однако при этом в сети может существовать большое число "заблудившихся" пакетов, которые будут снижать производительность сети.
В результате простых рекомендаций по выбору начального значения поля TTL в протоколе IP не существует - это значение подлежит настройке путем натурного экспериментирования или моделирования.
2.1.6. Параметры квитирования
Протоколы, работающие с установлением соединения, обычно следят за корректностью доставки пакетов получателю и организуют повторные передачи искаженных или утерянных пакетов. В рамках соединения правильность передачи каждого пакета должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. Идея квитирования состоит в следующем.
Для того, чтобы можно было организовать повторную передачу искаженных данных отправитель нумерует отправляемые единицы передаваемых данных - пакеты. Для каждого пакета отправитель ожидает от приемника так называемую положительную квитанцию - служебное сообщение, извещающее о том, что исходный пакет был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого пакета передатчик запускает таймер, и если по его истечению положительная квитанция не получена, то пакет считается утерянным. В некоторых протоколах приемник, в случае получения пакета с искаженными данными, должен отправить отрицательную квитанцию - явное указание того, что данный пакет нужно передать повторно.
Существуют два подхода к организации процесса обмена положительными и отрицательными квитанциями: с простоями и с организацией "окна".
Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Из рисунка 2.5 видно, что в этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции.
Рис. 2.5. Реализация квитирования с простоями приемника
Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.
Метод обмена квитанциями с простоями имеет один параметр - величину тайм-аута ожидания квитанции. При отправке очередного пакета взводится таймер ожидания квитанции и, если установленный тайм-аут истек, а квитанция не пришла, то пакет или квитанции считаются утерянными и оранизуется вторичная передача неподтвержденного пакета (рис. 2.6).
Рис. 2.6. Влияние тайм-аута на работу протокола
Величина тайм-аута - это основной параметр настройки протоколов, работающих в соотвествии с алгоритмом протоев источника. Слишком маленькие значения тайм-аута могут вызвать нежелательное снижение пропускной способности. Это может произойти в большой составной сети, в которой работают перегруженные маршрутизаторы, медленно обрабатывающие потоки пакетов. Если задержки передачи пакетов превзойдут значение тайм-аута, то исходный узел будет повторно передавать пакеты, которые на самом деле не были потеряны, а просто слишком медленно шли до узла назначения.
При выборе величины тайм-аута должны учитываться скорость и надежность физических линий связи, их протяженность и многие другие подобные факторы. В протоколе TCP, например, тайм-аут определяется с помощью достаточно сложного адаптивного алгоритма, идея которого состоит в следующем. При каждой передаче засекается время от момента отправки сегмента до прихода квитанции о его приеме (время оборота). Получаемые значения времен оборота усредняются с весовыми коэффициентами, возрастающими от предыдущего замера к последующему. Это делается с тем, чтобы усилить влияние последних замеров. В качестве тайм-аута выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2. В сетях с большим разбросом времени оборота при выборе тайм-аута учитывается и дисперсия этой величины.
При больших значениях тайм-аута потери времени, ушедшего на ожидание квитанции, могут быть слишком большими и пропускная способность сети может снизиться в десятки раз.
Рассмотрим пример, иллюстрирующий возможное снижение пропускной способности сети NovellNetWare из-за слишком большого значения тайм-аута времени ожидания квитанций.
Клиент и сервер NetWare по умолчанию используют алгоритм квитирования с простоями при организации передачи файлов. Если на сервере и клиенте работает стек IPX/SPX, то протокол прикладного уровня NCP, отвечающий за файловый сервис, не использует для транспортировки своих сообщений протокол SPX, работающий с установлением соединения, а обращается непосредственно к протоколу IPX. Это делается для ускорения работы файлового сервиса, так как использование каждого дополнительного уровня в стеке протоколов снижает общую производительность стека.
Протокол IPX - это протокол дейтаграммного типа, который повторную передачу искаженных и утернных пакетов не выполняет. В результате при утере или искажении данных в локальной сети, где на нижнем уровне также работают протоколы дейтаграммного типа (Ethernet, TokenRing и т.п.), повторная передача пакетов организуется только протоколом NCP, который работает по алгоритму квитирования с простоем источника. По умолчанию протокол NCP использует тайм-аут в 0.5 секунды, после истечения которого выполняется повторная передача пакета, на который не пришла квитанция.
Рассмотрим на примере, насколько может снизиться пропускная способность сети NetWare при значении тайм-аута в 0.5 секунды и уровне потерянных и искаженных пакетов всего в 3%.
На рисунке 2.7 показаны временные диаграммы передачи файла между сервером и клиентом в двух случаях - при идеально работающей сети, когда пакеты не искажаются и не теряются, и в сети с 3% уровнем утерянных и искаженных пакетов.
Пусть в обоих случаях между клиентом и сервером передается файл размером в 240 000 байт. Файл передается с помощью протокола IPX со служебным заголовком в 30 байт и протокола Ethernet с размером служебного заголовка в 26 байт (с учетом преамбулы). Размер служебного заголовка самого протокола NCP составляет 20 байт.
Пусть файл передается частями по 1000 байт. Всего для передачи файла потребуется 240 пакетов.
Размер кадра Ethernet, переносящего 1000 байт передаваемого файла, составит 1000+20+30+26 = 1076 байт или 8608 бит.
Размер квитанции NCP, которая подтверждает получение пакета, равен 10 байтам, что дает размер кадра Ethernet, переносящего квитанцию в 86 байт (вместе с преамбулой) или 688 бит.
Предположим, что время обработки одного пакета на клиентской стороне составляет 650 мкс, а на сервере - 50 мкс.
В этих условиях время одного цикла передачи очередной части файла в идеальной сети составит 860.8 + 68.8 +650 + 50 = 1629.6 мкс.
Общее время передачи файла в 240 000 байт составит при этом 240х1629.6 = 0.391 секунды, а эффективная пропускная способность сети - 240000/0.391 = 613810 байт/с или 4.92 Мб/c.
При потере (независимо от причины) 3% кадров Ethernet повторная передача кадра начинается только после истечения тайм-аута в 0.5 сек. Всего таких случаев за время передачи файла будет 240х0.03 = 7. Следовательно, время передачи файла возрастет на 7х0.5 = 3.5 сек, а общее время передачи файла составит 0.391 + 3.5 = 3.891 сек. Пропускная способность сети при этом становится равной 240000/3.891 = 61680 байт/c или 0.49 Мб/c.
Таким образом, при наличии в сети NetWare всего 3% потерянных или искаженных пакетов пропускная способность этой сети снижается в 10 раз.
Рис. 2.7. Влияние потерь пакетов на производительность сети
Во втором методе - методе скользящего окна - для повышения коэффициента использования линии источнику разрешается передать некоторое количество пакетов в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти пакеты ответных квитанций (рис. 2.8).
Рис. 2.8. Квитирование с передачей "неподтвержденных" пакетов
Количество пакетов, которые разрешается передавать таким образом, называется размером окна. Рисунок 2.9 иллюстрирует данный метод для размера окна в 8 пакетов.
Рис. 2.9. Обмен квитанциями в режиме окна
Этот алгоритм называют алгоритмом скользящего окна. Действительно, при каждом получении квитанции окно перемещается (скользит), захватывая новые данные, которые разрешается передавать без подтверждения.
Алгоритм скользящего окна имеет два настраиваемых параметра - размер окна и время тайм-аута ожидания прихода квитанции. Оба параметра влияют на пропускную способность сети. В сетях с редкими искажениями и потерями пакетов целесообразно устанавливать большие значения окна и тайм-аута, в ненадежных сетях нужно работать с меньшими значениями как окна, так и тайм-аута.
Многие протоколы используют механизм скользящего окна для повышения своей пропускной способности. К ним относятся такие популярные протоколы как LAP-B, LAP-D и LAP-M семейства HDLC, используемые в территориальных сетях, протокол V.42, работающий в современных модемах, протоколы SPX , TCP и многие протоколы прикладного уровня.
Особенность реализации алгоритма квитирования в протоколе TCP состоит в том, что хотя единицей передаваемых данных у протокола TCP является сегмент (другое название пакета), окно определено на множестве нумерованных байт неструктурированного потока данных, поступающих с верхнего уровня и буферизуемых протоколом TCP.
В качестве квитанции получатель сегмента отсылает ответное сообщение (сегмент), в которое помещает число, на единицу превышающее максимальный номер байта в полученном сегменте. Если размер окна равен W, а последняя квитанция содержала значение N, то отправитель может посылать новые сегменты до тех пор, пока в очередной сегмент не попадет байт с номером N+W. Этот сегмент выходит за рамки окна, и передачу в таком случае необходимо приостановить до прихода следующей квитанции.
Особенностью протокола TCP является также адаптивное изменение величины окна. В подавляющем большинстве других протоколов размер окна устанавливается администратором и самим протоколом в процессе его работы не изменяется. Варьируя величину окна, можно повлиять на загрузку сети. Чем больше окно, тем большую порцию неподтвержденных данных можно послать в сеть. Если сеть не справляется с нагрузкой, то возникают очереди в промежуточных узлах-маршрутизаторах и в конечных узлах-компьютерах.
При переполнении приемного буфера конечного узла "перегруженный" протокол TCP, отправляя квитанцию, помещает в нее новый, уменьшенный размер окна. Если он совсем отказывается от приема, то в квитанции указывается окно нулевого размера. Однако даже после этого приложение может послать сообщение на отказавшийся от приема порт. Для этого, сообщение должно сопровождаться пометкой "срочно". В такой ситуации порт обязан принять сегмент, даже если для этого придется вытеснить из буфера уже находящиеся там данные.
После приема квитанции с нулевым значением окна протокол-отправитель время от времени делает контрольные попытки продолжить обмен данными. Если протокол-приемник уже готов принимать информацию, то в ответ на контрольный запрос он посылает квитанцию с указанием ненулевого размера окна.
Другим проявлением перегрузки сети является переполнение буферов в маршрутизаторах. В таких случаях они могут централизовано изменить размер окна, посылая управляющие сообщения некоторым конечным узлам, что позволяет им дифференцированно управлять интенсивностью потока данных в разных частях сети.
2.1.7. Сравнение сетевых технологий по производительности: Ethernet, TokenRing, FDDI, 100VG-AnyLAN, FastEthernet, ATM
В этом разделе подводятся некоторые итоги рассмотрения влияния различных параметров протоколов канального уровня на пропускную способность сети, а также приводятся результаты одного экспериментального сравнения протоколов в незагруженной сети.
Необходимо отметить, что кроме такого критерия как пропускная способность, при выборе протокола обычно учитывается и ряд других соображений, иногда оказывающих на конечный выбор большее влияние, чем результирующая пропускная способность сети. Наиболее важными факторами, которые нужно принимать во внимание при выборе протокола, помимо его влияния на пропускную способность сети, являются:
Перспективность протокола. Желательно иметь уверенность, что выбранный вами протокол не постигнет судьба протокола ARCnet (или близкого к нему стандарта 802.4), который при неплохих технических показателях сошел на нет из-за отстутсвия поддержки со стороны большинства производителей коммуникационного оборудования. Перспективность протокола трудно прогнозировать, поэтому можно ориентироваться на фактор, рассматриваемый следующим.
Количество компаний, поддерживающий данный протокол. Для примера сравним два новых высокоскоростных протокола - FastEthernet и 100VG-AnyLAN. Если первый поддерживают практически все производители оборудования для локальных сетей (более 100 известных компаний), то протокол 100VG-AnyLAN поддерживают только 30 производителей. Поэтому риск при переходе на протокол 100VG-AnyLAN более велик, чем при переходе на протокол FastEthernet.
Отказоустойчивость протокола. Далеко не во все протоколы встроены процедуры тестирования корректности работы сети и автоматического восстановления работоспособности после отказов. Контроль доставки пакетов адресату и повторная передача искаженных и утраченных пакетов - это один из уровней отказоустойчивости, которым может обладать протокол. К сожалению, большая часть протоколов канального уровня локальных сетей не выполняет эти функции, а контролем работоспособности кабельной системы и аппаратуры, и автоматическим восстановлением работоспособности сети после отказов может похвастаться только протокол FDDI.
Стоимость оборудования, реализующего данный протокол. Этот фактор - один из главных, обеспечивших преобладание протокола Ethernet в локальных сетях и сдерживающих распространение технологии АТМ. Стоимость - немаловажный козырь в руках сторонников технологии FastEthernet, унаследовавшей от 10 Мб Ethernet'а простоту алгоритмов и, соответственно, минимальную стоимость среди всех протоколов локальных сетей.
Поддержка трафика реального времени. В связи с необходимостью передачи по одной и той же сети традиционного компьютерного трафика, слабо чувствительного к задержкам, и мультимедийного трафика - голоса, видеоданных и т.п., плохо переносящего задержки пакетов даже в несколько миллисекунд, от протокола может потребоваться способность приоритизации чувствительного к задержкам трафика, который представляет собой трафик реального времени. В этом отношении протоколы Ethernet и FastEthernet уступают своим конкурентам, так как они не различают классы трафика. Протоколы FDDI и 100VG-AnyLAN различают трафик двух классов - обычный и высокоприоритетный и передают приоритетные кадры в первую очередь. Наиболее совершенным в отношении поддержки разных типов трафика является протокол АТМ, который сегодня различает 5 типов трафика - от компьютерного с неизвестной пропускной способностью до голосового трафика с постоянной средней битовой скоростью.
Если же вернуться к проблеме выбора протокола канального уровня по критерию максимизации пропускной способности сети, то наиболее влияющими параметрами протокола в этом отношении будут следующие:
Часто считается, что наиболее значимым фактором является номинальная пропускная способность и что протокол с большим ее значением всегда приводит к большей пропускной способности сети.
Однако это далеко не всегда верно. Результирующая пропускная способность сети складывается под влиянием многих параметров и часто наиболее значимым является размер поля данных кадра или же время доступа к среде. Для подтверждения этого явления приведем результаты экспериментального сравнения пропускной способности сети при использовании в ней протоколов Ethernet, TokenRing и FDDI, отличающихся как номинальной пропускной способностью, так и максимальным размером поля данных и номинальным времени доступа к среде.
Экспериментальная сеть состояла всего из двух узлов - клиентского компьютера и сервера, поэтому фактор ожидания доступа к среде из-за ее загрузки здесь не исследовался.
Очевидно, что время выполнения запроса на клиентской и серверной машине не должно существенно превышать время передачи данных запроса по сети, иначе параметры протокола канального уровня будут малозначащими факторами эксперимента. В экспериментах времена выполнения запросов варьировались для оценки их влияния на результаты.
Исследовалось влияние на время реакции: номинальной пропускной способности, максимально допустимого размера поля данных кадра, номинального времени доступа к среде передачи данных.
Фактор номинальной пропускной способности
Увеличение пропускной способности повышает производительность сети, хотя часто и не в такой степени, как это ожидается. На рисунке 2.10а показано, как повышается производительность сети при переходе от номинальной пропускной способности 10 Мб/с протокола Ethernet к номинальной пропускной способности 16 Мб/с протокола TokenRing в зависимости от времени выполнения приложения. Из рисунка видно, что когда время выполнения приложения превышает 5 мс, то ожидаемый выигрыш в производительности будет меньше, чем 5%. Но даже тогда, когда время выполнения приложения пренебрежимо мало по сравнению со временем передачи запроса и ответа по сети, выигрыш в производительности составляет всего 30%, хотя номинальная пропускная способность возрастает на 60%. Для того, чтобы выяснить влияние на производительность только фактора пропускной способности, этот график был получен в предположении одинаковой длины пакетов и одинакового времени доступа к среде для обоих протоколов.
Фактор размера пакета
Разные протоколы характеризуются разными максимально допустимыми длинами пакетов. Например, Ethernet допускает в пакете поле данных, которое несет пользовательскую информацию длиной до 1024 байта, соответственно TokenRing 4 Мб/с - 4096 байт, TokenRing 16 Мб/с - 16384 байта, FDDI - 4096 байт.
На рисунке 2.10б показана зависимость повышения производительности сети при переходе от пакетов 1024 байта протокола Ethernet к пакетам 4096 протокола TokenRing 16 Мб/с. Ясно, что при этом действует и фактор повышения пропускной способности, но как видно из рисунка 2.10а, этот фактор действует гораздо слабее. Действительно, при нулевом времени выполнения приложения общий выигрыш от действия этих двух факторов составляет 190%, в то время как при увеличении только пропускной способности производительность увеличилась всего на 30%.
Рис. 2.10. Влияние различных факторов на производительность
Фактор номинального времени доступа к среде
Время доступа к среде - более значительный фактор, чем пропускная способность, хотя и менее важный, чем размер пакета. Рисунок 2.10в показывает, что прирост производительности при переходе от протокола Ethernet к протоколу TokenRing 16 Мб/с является отрицательным для всех точек кривой. Этот неожиданный результат означает, что в этих условиях Ethernet действительно превосходит по производительности TokenRing, хотя последний и превосходит его по пропускной способности в 1.6 раза. Для исключения влияния размера пакета данный анализ был сделан для пакетов в 1024 байта, которые могут передаваться обоими протоколами. Отношение времени доступа к среде протокола TokenRing к соответствующему времени протокола Ethernet было принято равным 5. Рисунок 2.10г показывает, что переход от протокола TokenRing к FDDI может привести не к ускорению, а к замедлению обмена при передаче больших файлов (из-за уменьшения поля данных пакета FDDI).
2.1.8. Сравнение протоколов IP, IPX и NetBIOS по производительности
Пропускная способность протоколов сетевого и транспортного уровней (протокол NetBIOS и его модификация NetBEUI в строгом смысле не относятся к сетевому уровню, так как не оперируют с понятием "номер сети", эти протоколы скорее можно отнести к транспортному и представительному уровням) во многом зависит от протокола канального уровня, над которым работают эти протоколы. Поэтому сравнивать протоколы сетевого и транспортного уровней нужно в предположении, что они используют один и тот же протокол канального уровня, например, Ethernet или FDDI.
Измерения, проведенные в реальных сетях, показывают, что наиболее медленным протоколом локальных сетей является протокол IP. Его сравнительно низкая пропускная способность является платой за его универсальность, то есть способность объединять практически все существующие сетевые технологии - Ethernet и X.25, ATM и FrameRelay и т.п. Универсальность протокола IP во многом обеспечивается независимой схемой адресации узлов, когда независимо от локального адреса узлу произвольным образом присваивается IP-адрес единого формата, никак не связанного с форматом локального адреса. Соответствие IP-адресов локальным адресам узлов устанавливает специальный протокол разрешения адресов ARP (AddressResolutionProtocol), который в локальных сетях использует для этой цели широковещательные запросы.
Протокол IPX использует в качестве номера узла тот же локальный адрес узла, что и протоколы канального уровня, а именно, его МАС-адрес. Поэтому протокол IPX не требует привлечения дополнительного протокола типа ARP при передаче пакетов. В результате пропускная способность сети при использовании протокола IPX обычно выше чем при использовании протокола IP. Кроме того, что использование ARP вводит новый этап обработки пакета, использование широковещательного трафика само по себе снижает пропускную способность сети, так как повышает степень загрузки сегментов сети. Вопрос влияния широковещательного трафика на производительность сети более подробно рассматривается в следующем разделе.
Протокол NetBIOS строго ориентирован на работу в локальных сетях, не разделяемых на части маршрутизаторами. Поэтому его разработчики не стали вводить такого понятия как "сеть" или "номер сети", ограничившись использованием для компьютеров МАС-адресов и символьных имен. Протокол NetBIOS может работать в двух режимах - дейтаграммном и с установлением соединения. В последнем случае он занимается восстановлением утерянных и искаженных кадров протокола канального уровня, что потенциально повышает пропускную способность сети, так как переносит процедуры востановления на более низкий уровень по сравнению с прикладным, как в случае применения стека NovellNetWare.
Протокол NetBIOS широко использует широковещательный трафик - в данном случае он используется для установления соответствия между символьными именами компьютеров и МАС-адресами. Поэтому производительность сети, использующей протокол NetBIOS, может снижаться из-за засорения разделяемого канала служебным широковещательным трафиком.
В целом, в сетях небольших размеров пропускная способность при использовании протоколов IPX и NetBIOS будет выше, чем при использовании протокола IP. Однако, при увеличении размеров сети и особенно количества компьютеров в сети, влияние широковещательного трафика может значительно снизить доступную для пользовательских данных полосу пропускания, и применение протокола IP будет предпочтительнее. Кроме того, необходимо учитывать тенденции развития протокола IP. В новой версии этого протокола - IPv6, процесс внедрения которой уже начался, протокол ARP перестанет применяться, так как в качестве IP-адреса узла будет использоваться локальный адрес, как это делается в протоколе IPX.