Излишняя сетевая буферизация

Излишняя сетевая буферизация (англ. Bufferbloat — распухание буфера) — явление, возникающееся в сетях с коммутацией пакетов, когда чрезмерная буферизация вызывает увеличение времени прохождения пакетов (latency) и разброса задержки пакетов (jitter), и в результате уменьшение пропускной способности (throughput). Проект www.bufferbloat.net иронично определил этот термин, как «ухудшение производительности Интернета, вызванное предыдущими попытками его улучшения»[1].

Термин Bufferbloat в конце 2010 предложил Джим Гетиc (Jim Gettys), член комитета W3C и разработчик спецификации HTTP/1.1[2].

История

Предыстория

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

Первое проявление перегрузки сети в крупном масштабе произошло в 1986г. в сети NSFNet[3]. В ответ на это событие в 1988 г. был разработан протокол контроля перегрузки сети Ван Якобсона (англ. Van Jacobson’s Congestion Control).

Интернет продолжал расти. В 1993 С. Флойд и В. Якобсон разрабатывают алгоритм RED (англ. Random early detection — Произвольное Раннее Обнаружение) для управления переполнением очередей маршрутизаторов[4].

В 1997 выходит RFC 2068, в которой сформулирован «принцип двух соединений»: одному клиенту следует использовать не более двух соединений одновременно с одним и тем же сервером[5]. По словам из этой же RFC, эта рекомендация дана «для уменьшения времени HTTP ответа и избежания чрезмерной загрузки Интернета или других сетей».

Годом позже выходит RFC 2309: «Рекомендации по управлению очередями и избежанию перегрузки в Интернете», в которой были предложены меры по улучшению и сохранению производительности Интернета.

В 2001 году выходит RFC 3168: «Добавление явной нотификации о перегрузке (Explicit Congestion Notification, ECN) в IP», в которой было предложено добавление поля ECN в IP и TCP пакетах, резервируя для этого 2 бита.

В 2004-2007 один из крупнейших интернет-провайдеров США Comcast испытывает трудности в связи с сетевой перегрузкой. Об этом свидетельствуют неоднократные отключения интернета «тяжёлым» пользователям[6]. А в 2007 Comcast, по словам Джима Геттиса, «задыхается» от битторрентов[7]. Компанию обвиняют в блокировании торрент-траффика[8] и даже преследуют судебные иски[9].

Обнаружение проблемы

По утверждению Джима Геттиса, первым, кто обнаружил проблему излишней сетевой буферизации, был Дэйв Кларк[7]. В 2004 г. он наблюдал это явление на своём DSLAMе и использовал его, чтобы отбить у своего сына привычку подолгу играть в WOW[10].

Примечания

  1. Introduction (англ.). Wiki. www.bufferbloat.net. Дата обращения 2 сентября 2011.
  2. Проект по избавлению Linux-ядра от излишней сетевой буферизации (неопр.). OpenNET (27 февраля 2011). Дата обращения 5 сентября 2011.
  3. Internet History :: NSFNET (англ.). www.cybertelecom.org. Дата обращения 6 сентября 2011.
  4. Floyd, Sally; Jacob
    son, Van. Random Early Detection (RED) gateways for Congestion Avoidance (неопр.) (August 1993). doi:10.1109/90.251892. Дата обращения 26 января 2010.
  5. «Connections. Persistent Connections. Practical Considerations». с. 45. секция 8.1.4. RFC 2068. RFC2068 на русском языке
  6. Joseph S. Enoch. Comcast Cuts Off Heavy Internet Users (англ.). ConsumerAffairs.com (24 August 2007). Дата обращения 7 сентября 2011.
  7. 1 2 Gettys, с 13.
  8. Declan McCullagh. Comcast really does block BitTorrent traffic after all (англ.). CNet (19 October 2007). Дата обращения 7 сентября 2011.
  9. Ryan Singel. Comcast Sued Over BitTorrent Blocking (англ.). Wired (14 November 2007). Дата обращения 7 сентября 2011.
  10. Jim Gettys. Whose house is of glasse, must not throw stones at another (англ.). lwn.net (7 December 2010). Дата обращения 6 сентября 2011.

Литература

Ссылки

  • www.bufferbloat.net  (англ.) (Сайт совместного проекта по решению проблемы излишней сетевой буферизации)
  • jg’s ramblings  (англ.) (Блог Дж. Гетиса, где он впервые описал проблему излишней сетевой буферизации)