Влияние размера кадра и пакета на производительность сети
Размер пакета может существенным образом повлиять на эффективную пропускную способность протокола, а значит и на производительность сети. Выясним на примере, как изменится эффективная пропускная способность протокола 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:
- Ethernet, Fast Ethernet - 1500 байт;
- TokenRing 16 - 16 Kбайт (обычно по умолчанию устанавливается значение 4K, но его можно увеличить);
- FDDI - 4Kбайта;
- 100VG-AnyLAN - 1500 байт при использовании кадров Ethernet и 16K при использовании кадров TokenRing;
- ATM - 48 байт.
Протоколы верхних уровней, начиная с сетевого, инкапсулируют свои пакеты в кадры протоколов канального уровня, поэтому ограничения, существующие на канальном уровне, являются общими ограничениями максимального размера пакета для протоколов всех уровней.
Необходимо отметить, что повышение размера кадра увеличивает пропускную способность сети только в том случае, когда данные в сети редко искажаются или теряются, то есть при устойчивой, надежной работе сети.
В противном случае увеличение размера пакета может привести не к увеличению, а к снижению пропускной способности, так как сеть будет повторно передавать большие порции информации. Для каждого уровня искажений данных можно подобрать рациональный размер пакета, для которого пропускная способность сети будет максимальной.
Максимальный размер пакета только создает предпосылки для повышения пропускной способности, так как в конечном счете от приложений зависит, будет ли использована данная максимальная величина поля данных или нет. Если, например, приложение ведет работы с базой данных и пересылает на сервер SQL-запросы, получая в ответ по одной короткой записи, то максимальный размер поля данных в 4 или 16 Кбайт никак не поможет повысить пропускную способность сети. При обращении же приложения к файловому серверу для пересылки мультимедийного файла размером в несколько мегабайт наличие возможности пересылать файл частями по 16К безусловно повысит пропускную способность сети по сравнению с вариантом пересылки файла частями по 1500 байт.
Настройка размера пересылаемых порций данных обычно происходит на транспортном уровне стека протоколов и, возможно, на прикладном, если разработчик приложения предусмотрел такую возможность.
Работа с пакетами больших размеров повышает производительность сети не только за счет уменьшения накладных расходов на служебную информацию заголовка. При использовании больших пакетов повышается производительность коммуникационного оборудования, работающего с кадрами и пакетами, то есть мостов, коммутаторов и маршрутизаторов. Это происходит из за того, что при передаче одного и того же объема информации число используемых больших пакетов существенно меньше, чем число маленьких, а так как коммуникационное оборудование тратит определенное время на обработку каждого пакета, то и временные потери продвижения пакетов мостами, коммутаторами и маршрутизаторами при использовании больших пакетов будут меньше.