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