А вот к затронутому нынче в зиване вопросу про QoS. Как кто-то когда-то справедливо заметил, в Интернете вопрос качества связи решается иначе, чем в телефонии. В телефонии когда заканчивается пропускная способность, перестают приниматься новые соединения. В Интернете вместо того все продолжает работать, но с уменьшенной пропускной способностью. К которой TCP умно и кооперативно адаптируется.
Проблема только в том, что пока оно адаптируется, задержка скачет. И в том, что приложения в этой адаптации плохо участвуют.
С другой стороны, аудио- и видео-приложения можно довольно легко адаптировать к уменьшению пропускной способности через уменьшение полосы пропускания (т.е. частотного спектра). Неужто никто еще не изобрел соответствующий протокол?
Казалось бы, идея в основе может быть достаточно простая: делим поток данных на несколько частотных полос: минимальную, вдвое больше, еще вдвое больше, и так до упора.
Когда мы кодируем кусок сигнала, делаем один пакет с минимальной полосой. Второй пакет с разницей между первым пакетом (т.е. минимальной полосой) и второй полосой. Третий пакет (или уже два пакета) с разницей между второй и третьей полосами. И т.д. Протокол, соответственно, не обычный TCP, а вариант, который умеет адаптироваться к потере пакетов и возвращать вовремя более ограниченные данные. И на посылающей стороне, соответственно, выбрасывать данные, которые заведомо не влезают в пропускную способность соединения.
Когда у маршрутизатора пакет не влазит в буфер, выкидывать по возможности пакеты с данными широких полос и сохранять пакеты с данными минимальных полос. Как именно - почва для дальнейшего исследования. Главное - чтобы все маршрутизаторы каким-то образом уважали этот приоритет пакетов.
Или уже кто-то изобрел?
Проблема только в том, что пока оно адаптируется, задержка скачет. И в том, что приложения в этой адаптации плохо участвуют.
С другой стороны, аудио- и видео-приложения можно довольно легко адаптировать к уменьшению пропускной способности через уменьшение полосы пропускания (т.е. частотного спектра). Неужто никто еще не изобрел соответствующий протокол?
Казалось бы, идея в основе может быть достаточно простая: делим поток данных на несколько частотных полос: минимальную, вдвое больше, еще вдвое больше, и так до упора.
Когда мы кодируем кусок сигнала, делаем один пакет с минимальной полосой. Второй пакет с разницей между первым пакетом (т.е. минимальной полосой) и второй полосой. Третий пакет (или уже два пакета) с разницей между второй и третьей полосами. И т.д. Протокол, соответственно, не обычный TCP, а вариант, который умеет адаптироваться к потере пакетов и возвращать вовремя более ограниченные данные. И на посылающей стороне, соответственно, выбрасывать данные, которые заведомо не влезают в пропускную способность соединения.
Когда у маршрутизатора пакет не влазит в буфер, выкидывать по возможности пакеты с данными широких полос и сохранять пакеты с данными минимальных полос. Как именно - почва для дальнейшего исследования. Главное - чтобы все маршрутизаторы каким-то образом уважали этот приоритет пакетов.
Или уже кто-то изобрел?