10.13.10 Снижение перегрузок за счет уменьшения пересылаемых по сети данных
10.13.10 Снижение перегрузок за счет уменьшения пересылаемых по сети данных
Сокращение объема пересылаемых данных несколько сложнее, чем рассмотренные выше механизмы. Оно начинает работать, как и уже упомянутый медленный старт. Но, поскольку устанавливается граница для уровня трафика, который может в начальный момент привести к проблемам, будет реально замедляться скорость обмена вследствие увеличения размера нагрузочного окна по одному сегменту. Нужно установить значения границы для реального сокращения скорости отправки. Сначала вычисляется граница опасности (danger threshold):
Граница – 1/2 minimum (текущее нагрузочное окно, приемное окно партнера)
Если полученная величина будет более двух сегментов, ее используют как границу. Иначе размер границы устанавливается равным двум сегментам. Полный алгоритм восстановления требует:
? Установить размер нагрузочного окна в один сегмент.
? Для каждого полученного ACK увеличивать размер нагрузочного окна на один сегмент, пока не будет достигнута граница (что очень напоминает механизм медленного старта).
? После этого с каждым полученным ACK к нагрузочному окну добавлять меньшее значение, которое выбирается на основе скорости увеличения по одному сегменту для времени цикла (увеличение вычисляется как MSS/N, где N — размер нагрузочного окна в сегментах).
Сценарий для идеального варианта может упрощенно представить работу механизма восстановления. Предположим, что приемное окно партнера (и текущее нагрузочное окно) имело до выявления тайм-аута размер в 8 сегментов, а граница определена в 4 сегмента. Если принимающее приложение мгновенно читает данные из буфера, размер приемного окна останется равным 8 сегментам.
? Отправляется 1 сегмент (нагрузочное окно = 1 сегмент).
? Получен ACK — отправляется 2 сегмента.
? Получен ACK для 2 сегментов — посылается 4 сегмента, (достигается граница).
? Получен ACK для 4 сегментов. Посылается 5 сегментов.
? Получен ACK для 5 сегментов. Посылается 6 сегментов.
? Получен ACK для 6 сегментов. Посылается 7 сегментов.
? Получен ACK для 7 сегментов. Посылается 8 сегментов (нагрузочное окно по размеру снова стало равно приемному окну).
Поскольку во время повторной пересылки по тайм-ауту требуется подтверждение приема всех отправленных данных, процесс продолжается до достижения нагрузочным окном размера приемного окна. Происходящие события показаны на рис. 10.20. Размер окна увеличивается экспоненциально, удваиваясь во время периода медленного старта, а по достижении границы увеличение происходит по линейному закону.
Рис. 10.20. Ограничение скорости пересылки во время перегрузки
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Дросселирование семафора для уменьшения состязательности между потоками
Дросселирование семафора для уменьшения состязательности между потоками Слишком большое количество потоков, соревнующихся между собой за право владения единственным ресурсом, например, мьютексом или объектом CS, могут стать причиной снижения производительности как в
Снижение плотности дефектов
Снижение плотности дефектов FitNesse не является критически важным приложением. Если в FitNesse закрадется ошибка, никто не умрет и никто не потеряет миллионы долларов. Исходя из этого, я могу себе позволить опубликовать новую версию на основании только прохождения тестов. С
4.24 Максимальное число пересылаемых элементов
4.24 Максимальное число пересылаемых элементов Каждая из рассмотренных нами технологий имеет различные максимальные размеры для своих кадров. После исключения заголовка кадра, заключительной части, а также заголовков LLC и SNAP (если они присутствуют), полученный результат
7.4.4 Проблемы перегрузок
7.4.4 Проблемы перегрузок Протокол IP очень прост: хост или маршрутизатор обрабатывают датаграмму и посылают ее как можно быстрее. Однако доставка не всегда проходит гладко. Могут возникнуть различные проблемы.Когда один или несколько хостов отправляют трафик UDP на
Глава 4 Сети хранения данных на базе интерфейса Fibre Channel
Глава 4 Сети хранения данных на базе интерфейса Fibre Channel Эту главу можно рассматривать как введение в сети хранения данных (storage area network – SAN) в общем и в сети хранения данных на базе интерфейса Fibre1 Channel в частности. Хотя сети хранения данных могут создаваться и на основе
2.2. Снижение издержек на коммуникацию с клиентами
2.2. Снижение издержек на коммуникацию с клиентами Еще раз вспомним, что наибольшие издержки в коммуникации – это время работы живых людей, потому что размер заработной платы сотрудников несравнимо больше стоимости поддержки серверов для того же количества клиентов,
Снижение рисков
Снижение рисков Редко удается полностью устранить риски. Мы водим машину, хоть это и опасно, но ведь нужно добираться до работы? Вообще возможность несчастного случая не означает, что он обязательно произойдет, да и, скорее всего, ничего страшного не случится. Почему?
82. Используйте подходящие идиомы для реального уменьшения емкости контейнера и удаления элементов
82. Используйте подходящие идиомы для реального уменьшения емкости контейнера и удаления элементов РезюмеДля того чтобы действительно избавиться от излишней емкости контейнера, воспользуйтесь трюком с использованием обмена, а для реального удаления элементов из
2.3. Снижение числа #include с помощью предварительного объявления классов
2.3. Снижение числа #include с помощью предварительного объявления классов ПроблемаИмеется заголовочный файл, который ссылается на классы из других заголовочных файлов, и требуется снизить зависимости компиляции (и, возможно, время).РешениеЧтобы избежать ненужных
Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости
Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости Предположим, вы пишете программу для нового телешоу «Бешеные деньги». Информация о потенциальных участниках хранится в векторе:class Contestant {...};vector<Contestant> contestants;При объявлении набора участников заявки
Операции увеличения и уменьшения: ++ и --
Операции увеличения и уменьшения: ++ и -- Операция увеличения осуществляет следующее простое действие: она увеличивает значение своего операнда на единицу. Существуют две возможности использования данной операции, первая: когда символы ++ находятся слева от
Операция уменьшения: --
Операция уменьшения: -- Каждой операции увеличения соответствует некоторая операция уменьшения, при этом вместо символов ++ мы используем -- -- count, /* префиксная форма операции уменьшения */count --, /* постфиксная форма операции уменьшения */ Ниже приводится пример,
Счет игры
Счет игры Итак, это уже похоже на игру. Но пока ей не хватает увлекательности. Нужно добавить подсчет результатов. Отображение результатов игры — не самая сложная задача. Мы можем выводить текст на экран с помощью метода DrawString. Но при этом потребуется указать шрифт, кисть
8.5.4. Повышение эффективности зa счет добавления вычисленных фактов к базе данных
8.5.4. Повышение эффективности зa счет добавления вычисленных фактов к базе данных Иногда в процессе вычислений приходится одну и ту же цель достигать снова и снова. Поскольку в Прологе отсутствует специальный механизм выявления этой ситуации, соответствующая цепочка
ГОЛУБЯТНЯ: Плановое снижение градуса
ГОЛУБЯТНЯ: Плановое снижение градуса Автор: Сергей ГолубицкийЗаключительную статью индийского цикла 2009 года посвятим негативным впечатлениям, без которых, конечно же, путешествия в иноземные страны не обходятся в принципе. Индия - не исключение, и, полагаю, составленная