Эндрю Уэзеролл - Компьютерные сети. 5-е издание
- Название:Компьютерные сети. 5-е издание
- Автор:
- Жанр:
- Издательство:Питер
- Год:2011
- ISBN:9785446100682
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Уэзеролл - Компьютерные сети. 5-е издание краткое содержание
Компьютерные сети. 5-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Рис. 5.22. Сеть: а — перегруженная; б — часть сети без перегрузки. Показан виртуальный канал между A и B
5.3.4. Регулирование трафика
В сети Интернет и многих других компьютерных сетях отправители передают столько трафика, сколько сеть в состоянии успешно доставить. В таком режиме сеть работает до тех пор, пока она не перегружена. Если перегрузка неизбежна, она просит отправителей снизить скорость передачи данных. Такая обратная связь — не исключительная, а вполне обычная ситуация, являющаяся частью работы системы. Такой режим работы называется предотвращением перегрузки( congestion avoidance) — в противопоставление ситуации, в которой сеть уже (слишком) перегружена.
Давайте рассмотрим несколько подходов к регулированию трафика, применяемых в дейтаграммных сетях и сетях виртуальных каналов. Каждый такой подход должен решать две проблемы. Во-первых, маршрутизаторы должны узнавать о перегрузке до того, как она произойдет. Для этого каждый маршрутизатор должен непрерывно отслеживать ресурсы, которые он использует. Здесь возможны три варианта: использование выходных линий, буферизация очереди пакетов данного маршрутизатора и число пакетов, утерянных вследствие неправильной буферизации. Наиболее эффективным является второй вариант. Средние показатели использования линий не отражают реальной картины при прерывистом трафике. Так, значение 50 % — это немного при сплошном трафике и слишком много при переменном трафике. Число утерянных пакетов становится известно слишком поздно: пакеты начинают теряться уже после возникновения перегрузки.
Время ожидания в очереди маршрутизатора явно отражает то, как перегрузка сказывается на пакетах. Будучи низким в большинстве случаев, этот показатель должен резко возрастать при скачке трафика, когда увеличивается число непереданных пакетов. Такую оценку времени ожидания в очереди (d) можно получить с помощью несложных вычислений, периодически замеряя мгновенную длину очереди s и рассчитывая новое значение переменной d по формуле:
d
= ad
новое
старое
+ (1
a) s,
где константа а определяет, насколько быстро маршрутизатор забывает свое прошлое. Это называется ЭВСС (экспоненциально взвешенное скользящее среднее — Exponentialy Weighted Moving Average, EWMA). Оно сглаживает различные флуктуации и работает как фильтр низких частот. Как только значение d выходит за пороговый уровень, маршрутизатор узнает о начале перегрузки.
Вторая проблема состоит в том, что маршрутизаторы должны вовремя доставлять сообщения обратной связи отправителям, чей трафик вызывает перегрузку. Хотя перегрузка происходит внутри сети, ее устранение требует участия отправителей, пользующихся сетью. Чтобы доставить сообщение обратной связи, маршрутизатор должен установить соответствующих отправителей. Затем он должен аккуратно передать им уведомления, не отправляя лишних пакетов в уже перегруженную сеть. Разные алгоритмы используют разные механизмы обратной связи. О них мы и поговорим далее.
Сдерживающие пакеты
Самый простой способ сообщить отправителю о перегрузке — сказать об этом прямо. При таком подходе маршрутизатор выбирает перегружающий пакет и отправляет источнику сдерживающий пакет (choke packet). Информация об источнике берется из задержанного пакета. Исходный пакет помечается (специальный бит в его заголовке устанавливается в единицу), чтобы он больше не порождал сдерживающих пакетов на пути следования, и отправляется дальше по своему обычному маршруту. Чтобы избежать роста нагрузки на сеть при перегрузке, маршрутизатор может отправлять сдерживающие пакеты только на низкой скорости.
Когда хост-отправитель получает сдерживающий пакет, он должен уменьшить трафик к указанному получателю, к примеру, на 50 %. В дейтаграммной сети выбор случайного пакета, скорее всего, приведет к тому, что сдерживающие пакеты дойдут до самых быстрых отправителей, поскольку именно их пакеты составляют большую часть очереди. Такая неявная обратная связь позволяет предотвратить перегрузку, не мешая тем отправителям, действия которых не вызывают проблем. По той же причине велика вероятность того, что множественные сдерживающие пакеты будут отправлены на нужный хост и адрес. В течение определенного промежутка времени — пока уменьшение трафика не подействует — хост будет игнорировать дополнительные пакеты. По истечении этого времени новые сдерживающие пакеты сообщат ему, что сеть все еще перегружена.
Примером сдерживающего пакета, применявшегося на ранних этапах сети Интернет, является сообщениеSOURCE QUENCH (Postel, 1981). Оно не прижилось отчасти потому, что не были четко определены условия и результаты его рассылки. Сейчас в сети Интернет используется другая схема уведомлений, о которой мы поговорим далее.
Явное уведомление о перегрузке
Вместо того чтобы создавать дополнительные пакеты, маршрутизатор может добавить специальную метку (например, 1 или 0 в заголовке) в любой передаваемый пакет, тем самым сообщая о перегрузке. Когда пакет будет доставлен, получатель поймет, что сеть перегружена, и добавит эту информацию в ответный пакет. После этого отправитель сможет, как и раньше, регулировать свой трафик.
Этот метод называется явным уведомлением о перегрузке( ECN — Explicit
Congestion Notification) и используется в сети Интернет (Ramakrishnan, 1988). Это усовершенствованный вариант ранних протоколов уведомления о перегрузке, в частности бинарной схемы обратной связи Ramakrishnan и Jain (1988), применявшейся в архитектуре DECNET. На информацию о перегрузке в заголовке пакета отводится два бита. В момент отправки пакет не имеет метки (рис. 5.23). При проходе через перегруженный маршрутизатор пакет получает отметку о перегрузке. После этого получатель передает эти сведения отправителю, добавив явное уведомление о перегрузке в следующий ответный пакет. На рисунке этот процесс показан пунктирной линией, чтобы показать, что он происходит над IP-уровнем (например, на уровне TCP). Далее, как и в случае со сдерживающими пакетами, отправитель должен начать регулировать трафик.
Рис. 5.23.Явное уведомление о перегрузке
Обратное давление на ретрансляционных участках
При больших скоростях передачи данных или при сильной удаленности хостов много новых пакетов может быть отправлено даже после передачи уведомлений о перегрузке, поскольку реакция на уведомление занимает некоторое время. Рассмотрим, к примеру, хост в Сан-Франциско (маршрутизатор A на рис. 5.24), посылающий поток данных на хост, расположенный в Нью-Йорке (маршрутизатор D на рис. 5.24), со скоростью OC-3 155 Мбит/с. Если у нью-йоркского хоста начнет кончаться буферная память, сдерживающему пакету потребуется около 40 мс на то, чтобы добраться обратно в Сан-Франциско и сообщить о том, что необходимо снизить объем трафика. Явное уведомление о перегрузке займет еще больше времени, поскольку оно доставляется через получателя. Распространение сдерживающего пакета схематично показано на второй, третьей и четвертой диаграммах рис. 5.24, а. За те 40 мс, пока этот пакет движется по сети, в сторону нью-йоркского маршрутизатора передается еще 6,2 Мбит данных, с которыми тоже надо как-то совладать. Только к седьмой диаграмме (рис. 5.24, а) маршрутизатор заметит начавшееся снижение потока.
Читать дальшеИнтервал:
Закладка: