Чтение онлайн

на главную - закладки

Жанры

Настройка сетей Microsoft дома и в офисе. Учебный курс

Сергеев Александр

Шрифт:

Чтобы не допустить слишком быстрого увеличения размеров окна и возникновения перегрузки, в протокол TCP введено дополнительное ограничение. Как только размер окна перегрузки достигнет половины своего первоначального значения, экземпляр протокола TCP переходит к фазе аннулирования перегрузки и снижает скорость нарастания размеров этого окна. Во время этой фазы размер окна перегрузки увеличивается на единицу только в том случае, если для всех сегментов, находящихся в окне, будут получены сигналы подтверждения приема.

Ранее уже отмечалось, что коммуникационные протоколы разделены на логические уровни, благодаря чему значительно облегчается их дальнейшая разработка и модернизация. Однако разделение на уровни

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

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

Одно из основных взаимодействий между модулями протоколов IP и TCP происходит в случае перегрузки маршрутизатора, из-за которой теряются дейтаграммы. Поскольку маршрутизатор помещает каждую вновь прибывшую дейтаграмму в очередь на обработку, основное внимание инженеров было сосредоточено на алгоритмах манипуляции элементами этой очереди. Если скорость поступления дейтаграмм превышает скорость их обработки в маршрутизаторе, размер очереди будет постоянно увеличиваться. Если же маршрутизатор перенаправляет дейтаграммы быстрее, чем они поступают, размер очереди сокращается. Поскольку объем оперативной памяти маршрутизатора ограничен, размер очереди не может увеличиваться до бесконечности. Поэтому в ранних версиях программного обеспечения маршрутизаторов при переполнении очереди использовалась методика усечения хвоста очереди.

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

относящиеся к разным TCP-соединениям, применение методики усечения хвоста очереди приводит к эффекту глобальной синхронизации.

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

Как же избежать эффекта глобальной синхронизации в маршрутизаторе? Для этого необходим алгоритм, который позволит избежать усечения хвоста очереди там, где это возможно. И такой алгоритм был найден (RED, Random Early Detection). Для описания принципов работы этого алгоритма применяются три простых правила:

– если количество дейтаграмм в очереди не превышает значение Т1, новая дейтаграмма добавляется в конец очереди;

– если количество дейтаграмм в очереди попадает в диапазон между Т1 и Т2, отклоняется одна из дейтаграмм, выбор которой осуществляется случайным образом с некоей вероятностью;

– если количество дейтаграмм в очереди превышает Т2, все вновь поступившие диаграммы отбрасываются.

Благодаря методике случайного выбора, заложенной в RED, маршрутизатор по мере увеличения перегрузки переходит к постепенному и случайному удалению дейтаграмм. В этом ее коренное отличие от алгоритма усечения хвоста очереди, при использовании которого в случае переполнения очереди большое количество TCP-соединений переводится в состояние медленного запуска.

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

Значение Т1 должно быть достаточно большим, чтобы обеспечить высокую пропускную способность выходного канала связи. Когда размер очереди превосходит Т2, алгоритм RED работает так же, как и алгоритм усечения хвоста очереди. Поэтому значение Т2 должно быть больше Т1 по крайней мере на среднюю величину увеличения размера очереди за время одной полной доставки ТСР-сег-мента. В противном случае использование алгоритма RED может привести к тем же глобальным колебаниям трафика в сети, что и при использовании метода усечения хвоста очереди.

Самой сложной задачей в алгоритме RED является нахождение значения вероятности потери дейтаграммы. Очевидно, что эта величина не может быть постоянной и должна вычисляться заново для каждой из вновь прибывших дейтаграмм. Ее значение зависит от текущего размера очереди и установленных пороговых значений Т1 и Т2. Применяемая в этом случае идея будет понятнее, если описать алгоритм, используемый в RED, с вероятностной точки зрения.

Если размер очереди меньше величины, определяемой параметром Т1, потери дейтаграмм не происходит. Поэтому можно считать, что в этом случае значение вероятности потерь равно нулю. Когда же размер очереди превышает Т2, отклоняются все дейтаграммы. Поэтому в последнем случае значение вероятности равно единице. Если размер очереди колеблется между Т1 и Т2, значение вероятности отклонения дейтаграммы изменяется по линейному закону (в промежутке между 0 и 1).

Поделиться:
Популярные книги

Огни Эйнара. Долгожданная

Макушева Магда
1. Эйнар
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Огни Эйнара. Долгожданная

Real-Rpg. Еретик

Жгулёв Пётр Николаевич
2. Real-Rpg
Фантастика:
фэнтези
8.19
рейтинг книги
Real-Rpg. Еретик

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Как я строил магическую империю

Зубов Константин
1. Как я строил магическую империю
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю

Возвращение Безумного Бога 5

Тесленок Кирилл Геннадьевич
5. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 5

Ненужная жена

Соломахина Анна
Любовные романы:
любовно-фантастические романы
5.86
рейтинг книги
Ненужная жена

Идеальный мир для Социопата 6

Сапфир Олег
6. Социопат
Фантастика:
боевая фантастика
рпг
6.38
рейтинг книги
Идеальный мир для Социопата 6

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Мимик нового Мира 6

Северный Лис
5. Мимик!
Фантастика:
юмористическая фантастика
попаданцы
рпг
5.00
рейтинг книги
Мимик нового Мира 6

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Новая мама в семье драконов

Смертная Елена
2. В доме драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Новая мама в семье драконов

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й

Газлайтер. Том 9

Володин Григорий
9. История Телепата
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 9