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. Ограничение скорости пересылки во время перегрузки

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

ГОЛУБЯТНЯ: Плановое снижение градуса

Из книги Журнал "Компьютерра" №769 автора Журнал «Компьютерра»

ГОЛУБЯТНЯ: Плановое снижение градуса Автор: Сергей ГолубицкийЗаключительную статью индийского цикла 2009 года посвятим негативным впечатлениям, без которых, конечно же, путешествия в иноземные страны не обходятся в принципе. Индия - не исключение, и, полагаю, составленная


Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости

Из книги Эффективное использование STL автора Мейерс Скотт

Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости Предположим, вы пишете программу для нового телешоу «Бешеные деньги». Информация о потенциальных участниках хранится в векторе:class Contestant {...};vector<Contestant> contestants;При объявлении набора участников заявки


Дросселирование семафора для уменьшения состязательности между потоками

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


Глава 4 Сети хранения данных на базе интерфейса Fibre Channel

Из книги Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 автора Дайлип Наик

Глава 4 Сети хранения данных на базе интерфейса Fibre Channel Эту главу можно рассматривать как введение в сети хранения данных (storage area network – SAN) в общем и в сети хранения данных на базе интерфейса Fibre1 Channel в частности. Хотя сети хранения данных могут создаваться и на основе


4.24 Максимальное число пересылаемых элементов

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

4.24 Максимальное число пересылаемых элементов Каждая из рассмотренных нами технологий имеет различные максимальные размеры для своих кадров. После исключения заголовка кадра, заключительной части, а также заголовков LLC и SNAP (если они присутствуют), полученный результат


7.4.4 Проблемы перегрузок

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

7.4.4 Проблемы перегрузок Протокол IP очень прост: хост или маршрутизатор обрабатывают датаграмму и посылают ее как можно быстрее. Однако доставка не всегда проходит гладко. Могут возникнуть различные проблемы.Когда один или несколько хостов отправляют трафик UDP на


82. Используйте подходящие идиомы для реального уменьшения емкости контейнера и удаления элементов

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

82. Используйте подходящие идиомы для реального уменьшения емкости контейнера и удаления элементов РезюмеДля того чтобы действительно избавиться от излишней емкости контейнера, воспользуйтесь трюком с использованием обмена, а для реального удаления элементов из


8.5.4. Повышение эффективности зa счет добавления вычисленных фактов к базе данных

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

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


2.3. Снижение числа #include с помощью предварительного объявления классов

Из книги Язык Си - руководство для начинающих автора Прата Стивен

2.3. Снижение числа #include с помощью предварительного объявления классов ПроблемаИмеется заголовочный файл, который ссылается на классы из других заголовочных файлов, и требуется снизить зависимости компиляции (и, возможно, время).РешениеЧтобы избежать ненужных


Счет игры

Из книги Интернет-маркетинг. Полный сборник практических инструментов автора Вирин Федор Юрьевич

Счет игры Итак, это уже похоже на игру. Но пока ей не хватает увлекательности. Нужно добавить подсчет результатов. Отображение результатов игры — не самая сложная задача. Мы можем выводить текст на экран с помощью метода DrawString. Но при этом потребуется указать шрифт, кисть


Операции увеличения и уменьшения: ++ и --

Из книги Как тестируют в Google автора Уиттакер Джеймс

Операции увеличения и уменьшения: ++ и --      Операция увеличения осуществляет следующее простое действие: она увеличивает значение своего операнда на единицу. Существуют две возможности использования данной операции, первая:     когда символы ++ находятся слева от


Операция уменьшения: --

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

Операция уменьшения: --      Каждой операции увеличения соответствует некоторая операция уменьшения, при этом вместо символов ++ мы используем -- -- count, /* префиксная форма операции уменьшения */count --, /* постфиксная форма операции уменьшения */     Ниже приводится пример,


2.2. Снижение издержек на коммуникацию с клиентами

Из книги автора

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


Снижение рисков

Из книги автора

Снижение рисков Редко удается полностью устранить риски. Мы водим машину, хоть это и опасно, но ведь нужно добираться до работы? Вообще возможность несчастного случая не означает, что он обязательно произойдет, да и, скорее всего, ничего страшного не случится. Почему?


Снижение плотности дефектов

Из книги автора

Снижение плотности дефектов FitNesse не является критически важным приложением. Если в FitNesse закрадется ошибка, никто не умрет и никто не потеряет миллионы долларов. Исходя из этого, я могу себе позволить опубликовать новую версию на основании только прохождения тестов. С