Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

Влияние ошибок интерфейса на производительность TCP

Влияние ошибок интерфейса на производительность TCP

Не все сетевые инженеры понимают влияние ошибок интерфейса на производительность сетей, базирующихся на протоколе TCP. И хотя это может не быть интуитивно понятно с первого взгляда, ошибки интерфейса способны оказывать ОЧЕНЬ БОЛЬШОЕ влияние. Недавно мы указали клиенту на некоторые интерфейсы с очень большим количеством ошибок, особо отметив тот факт, что линии с наибольшим процентом потерь, вероятно, пропускают очень мало полезных данных. Поэтому следует исследовать причину этих ошибок. Сначала заказчик не выглядел обеспокоенным, поскольку уровень ошибок был ниже 3%. Однако лично мы считаем, что частота возникновения ошибок более 0,001% уже должна вызывать беспокойство.

Данная статья основана на этом опыте и призвана проиллюстрировать влияние ошибок интерфейса на производительность сети.

Ожидаемая наилучшая производительность TCP/IP

Первый вопрос, который следует рассмотреть: «Какую максимальную производительность TCP/IP можно ожидать от канала Gigabit Ethernet в кампусе?».

Прежде всего, давайте посмотрим на необходимую для TCP буферизацию, которая является следствием задержки полосы пропускания (BDP). При использовании канала Gigabit Ethernet буферизация, необходимая принимающей системе для обеспечения максимальной производительности, представляет собой объем данных, который может передаваться между получаемыми подтверждениями приема (ACK). Пропускная способность гигабитного канала составляет 1000 Мбит/с. Если обмен данными происходит внутри кампуса, например, между сервером центра обработки данных и пользователем, время приема-передачи (время двойного прохождения, RTT) должно быть очень маленьким, скажем, 2 миллисекунды или 0,002 секунды. Итак, для гигабитного канала принимающая система должна иметь возможность буферизовать количество данных, равное произведению полосы пропускания на задержку:

 

BDP = 1000 Мбит/с × 0,002 секунды

BDP = 1000 Мбит/с (1 байт / 8 бит) × 0,002 секунды

BDP = 125 000 000 байт × 0,002 секунды

BDP = 250 000 байт

 

Если значение BDP меньше размера окна TCP, полоса пропускания тракта является ограничивающим фактором пропускной способности. Для канала Gigabit Ethernet значение BDP 250 000 байт больше, чем окно TCP по умолчанию, равное 32 000 байт (размер окна TCP по умолчанию), поэтому полоса пропускания тракта не будет ограничивающим фактором.

Если же размер окна TCP меньше необходимой для сохранения заполнения канала буферизации, механизм работы TCP влияет на максимальную пропускную способность. В этом случае передающая система отправляет данные всего окна TCP, ожидает подтверждения от получателя, а затем снова осуществляет передачу. Приложение не использует механизм окна отправки, который позволил бы TCP заполнить полосу пропускания канала. Новые данные можно отправлять только после получения подтверждения (ACK). Следовательно, максимальная пропускная способность, которая доступна для источника и получателя, представляет собой размер окна, деленный на время, необходимое для возврата подтверждения ACK (то есть время двойного прохождения). В этом случае лучшая пропускная способность, которой можно достичь - это размер блока (количество данных, отправленных в одно окно), деленный на время двойного прохождения или

 

Максимальная пропускная способность = размер блока / RTT

Максимальная пропускная способность в бит/с = [байт × 8 (бит в байте)] / RTT

 

Также следует рассмотреть еще один вопрос: «Какова максимальная пропускная способность канала GE в центре обработки данных?»

Для проведения данного расчета предположим, что приложение отправляет фрагмент данных размером 64 000 байт по нескольким сегментам TCP и ожидает получения подтверждения (ACK) перед отправкой следующей порции данных. Если обмен данными происходит внутри кампуса, например, между сервером центра обработки данных и пользователем, время двукратного прохождения (RTT) должно быть очень маленьким, возможно, 2 миллисекунды или 0,002 секунды. Поэтому максимальная скорость для передачи одного файла будет

 

64000 × 8 / 0,002 = 256000000 бит/с или 256 Мбит/с

 

Вывод: если время двукратного прохождения (RTT) составляет 2 мс, в кампусе возможна максимальная скорость канала Gigabit Ethernet около 256 Мбит/с.

 

Ожидаемая производительность TCP/IP с ошибками

Третьим рассматриваемым вопросом является: «Какое влияние на производительность TCP/IP на канале Gigabit Ethernet в кампусе оказывают ошибки?»

Примечание. Существует несколько потенциальных источников ошибок интерфейса, включая его отбрасывание при недостаточной для поддержки объема передаваемого трафика пропускной способности, неверно настроенные дуплексный режим и скорость, чрезмерную буферизацию на интерфейсах, неправильно настроенные каналы EtherChannels, а также неисправности кабелей или оборудования.

Сначала рассмотрим допустимую частоту ошибок. В соответствии со стандартами IEEE 802.3ab приемлемым для 1000BaseT коэффициентом битовых ошибок (BER) считается одна ошибка на 1010 битов.

 

Потеря 1 бита за 1 × 1010 бит/сек = потеря 1 бита на 1,25 × 109 байт в секунду

 

Если предположить, что средний пакет имеет длину 1000 байт, показатель BER для 1000BaseT будет составлять потерю одного пакета из 1,25 × 106 пакетов. В процентном выражении один потерянный пакет из 1,25 × 106 = 8 × 10-7 = 0,00008%. Это значение можно округлить и действительно ожидать в кабеле Gigabit Ethernet потери не более 0,0001% пакетов.

Примечание. Это пакет очень большого размера. Более распространенным средним значением пакета для предприятий, включая VoIP, скорее может быть размер от 300 до 450 байт. Однако размер пакета 1000 байт был выбран для упрощения расчетов.

Однако потеря пакетов в каналах TCP может происходить и из-за проблем с производительностью и конфигурацией серверов и сетевых устройств. Из-за того, что пакеты теряются и их необходимо передавать повторно, производительность TCP снижается. Фактическое влияние потерь на максимальную пропускную способность определяется уравнением Матиса:

 

Максимальная скорость в бит/с < (MSS/RTT) × (1/квадратный корень (p)),

где

  • MSS = максимальный размер сегмента в байтах
  • RTT = время двойного прохождения (приема-передачи) в секундах
  • p = вероятность потери пакета

 

Обратите внимание, что эта формула включает константу со значением, равным приблизительно 1, преобразующую байты в биты… Эта формула известна как уравнение Матиса из статьи 1997 года под названием «The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm» (Очевидные особенности алгоритма предотвращения перегрузки TCP).

Теперь мы можем применить уравнение Матиса к рассматриваемому в примере каналу GE. Для MSS используем значение 1460 байт, так как такой объем данных умещается в один пакет TCP (когда MTU (максимальный блок передачи) сетевого оборудования составляет 1500 байт). Предположим, что приложение будет передавать блок данных размером 1460 байт и перед отправкой следующих данных ожидать подтверждения (ACK). Поскольку подобный обмен данными происходит внутри кампуса, снова предположим, что значение RTT составляет 0,002 секунды. Таким образом, максимальная скорость передачи одного файла со стандартным значением BER для кабеля 1000BaseT с потерями 0,0001% будет:

 

Максимальная скорость в соответствии с уравнением Матиса в бит/с < (MSS/RTT) × (1/квадратный корень (p))

Максимальная скорость в бит/с < (1460/0,002) × (1/квадратный корень (0,000001))

Максимальная скорость в бит/с < 7,3 × 108 бит/с

Максимальная скорость в бит/с < 730 Мбит/с

 

Прогнозируемая по уравнению Матиса скорость превышает максимальную скорость 256 Мбит/с, которая была рассчитана без учета потерь, поэтому максимальной скоростью будет меньшее из двух рассчитанных значений, то есть 256 Мбит/с. Это разумный результат, поскольку каналы, соответствующие допустимому значению BER для Gigabit Ethernet, не оказывают отрицательного воздействия на производительность TCP.

Что происходит на нашем пороговом уровне беспокойства? В этом случае потери составляют 0,001%, или 1 пакет из 100000.

 

Максимальная скорость в соответствии с уравнением Матиса в бит/с < (MSS/RTT) × (1/квадратный корень (p))

Максимальная скорость в бит/с < (1460/0,002) × (1/квадратный корень (0,00001))

Максимальная скорость в бит/с < 2,3 × 108 бит/с

Максимальная скорость в бит/с < 231 Мбит/с

 

Поскольку полученное значение находится в пределах 10% от прогнозируемых 256 Мбит/с, его можно считать «приемлемым». Однако давайте посмотрим, что произойдет, если в линии будут потери 0,01% или 1 потерянный пакет из 10 000 пакетов?

 

Максимальная скорость в соответствии с уравнением Матиса в бит/с < (MSS/RTT) × (1/квадратный корень (p))

Максимальная скорость в бит/с < (1460/0,002) × (1/квадратный корень (0,0001))

Максимальная скорость в бит/с < 7,3 × 107 бит/с

Максимальная скорость в бит/с < 73 Мбит/с

 

Это значительно ниже прогнозируемых 256 Мбит/с. Подобное снижение скорости окажет заметное влияние на производительность приложения.

Мысленно вернувшись в начало статьи, вспомним о значении 3% и посмотрим, на что влияет такой уровень ошибок? Если использовать коэффициент ошибок в 3%, максимальная пропускная способность канала Gigabit Ethernet резко снизится:

 

Максимальная скорость в соответствии с уравнением Матиса в бит/с < (MSS/RTT) × (1/квадратный корень (p))

Максимальная скорость в бит/с < (1460/0,002) × (1/квадратный корень (0,02))

Максимальная скорость в бит/с < 4,2 × 106 бит/с

Максимальная скорость в бит/с < 4,2 Мбит/с

 

Такое резкое снижение скорости может легко привести к снижению производительности приложений.

 

Выводы

Теперь вы понимаете влияние ошибок интерфейса на пропускную способность TCP. Четко видно, что производительность системы между хостами быстро снижается. Поэтому любая частота ошибок интерфейса, превышающая 0,01%, должна вызывать тревогу и становиться поводом для немедленного проведения исследования и устранения причины. Надеюсь, что все вышеизложенное помогло объяснить, почему ошибки интерфейса должны вызывать такое беспокойство!

 

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого

См. также:
Заказать звонок

- Email
- Confirm
Имя *
Номер телефона *
Комментарий
Согласие на отправку персональных данных *


* - Обязательное для заполнения