Привет, сетевой друг! Давай расскажу про протокол ALTO, через который оператор сам подсказывает приложению как лучше передавать трафик в его сети.🟣Проблема которую решает: приложение не знает топологию сети оператора. P2P-клиент выбирает пира случайно и трафик может идти через дорогой межоператорский линк когда нужный пир сидит в той же AS за соседним свитчем. Стриминг выбирает CDN-узел по географии, а не по реальной близости в сети. Оператор об этом знает, но молчит.
🟣Что делает ALTO: оператор поднимает ALTO-сервер и отдаёт через REST API карту своей сети - стоимость маршрутов между подсетями, предпочтительные точки выхода, ранжирование эндпоинтов. Приложение делает запрос и получает подсказку кого лучше выбрать:
# Запрос стоимости маршрутов между подсетями
curl https://alto.operator.com/networkmap
curl https://alto.operator.com/costmap/pv/num/routingcost
# Ответ содержит матрицу стоимостей между PID-группами
# PID — это группы подсетей которые оператор считает эквивалентными
🟣Как это выглядит на практике: BitTorrent-клиент с поддержкой ALTO спрашивает у оператора какие из доступных пиров предпочтительнее. Оператор отвечает что пиры внутри его AS имеют стоимость 0, а пиры в других AS стоимость 10. Клиент выбирает внутренних - оператор экономит на межоператорском трафике, пользователь получает лучшую скорость.
🟣Endpoint Cost Service - самая полезная часть: приложение отдаёт список конкретных IP и получает их ранжирование:
POST /endpointcost/lookup
{
"cost-type": {"cost-mode": "numerical", "cost-metric": "routingcost"},
"endpoints": {
"srcs": ["ipv4:192.0.2.1"],
"dsts": ["ipv4:198.51.100.1", "ipv4:203.0.113.1", "ipv4:198.51.100.2"]
}
}
В ответе каждому dst назначена стоимость - приложение выбирает минимальную.
🟣А где используют: крупные CDN запрашивают ALTO у операторов для выбора точки присутствия, WebRTC-клиенты для выбора TURN-сервера, следующее поколение адаптивного стриминга. RFC 7285 принят в 2014 году, активно развивается - в 2021 вышли расширения для поддержки ALTO в мультидоменных сетях и датацентрах.
🟣И это редкий случай когда оператор и приложение реально сотрудничают вместо того чтобы бороться. Оператор получает меньше межоператорского трафика, приложение получает лучший выбор узлов, пользователь получает скорость. Все довольны.
Серверная Админа | Zeroday | #ALTO
