1. Дизайн маршрутизируемой сети

Блочная структура сети

  • Масштабируемые сети удобно строить блоками

Выбор протокола маршрутизации

Агрегация маршрутов

  • Удобно агрегировать маршруты на границах блоков

Особенности пакетной передачи

  • На сетевые сервисы будут влиять характеристики разных протоколов

    • IP

      • Desequencing

      • Jiiter

      • Latency

      • Фрагментация

    • TCP

      • MSS

      • Bandwidth x Delay Product (BDP) и Flow Control

      • Синхронизация

    • UDP

      • UDP Starvation

Desequencing/Jitter:

  • Нарушение порядка пакетов или их тайминга

  • Происходит при балансировке трафика через несколько каналов или неверно настроенном QoS

  • Негативно влияет на TCP и приложения реального времени

Latency:

  • Задержка при передаче

  • Возникает из-за медленных каналов или оборудования, загруженных буферов, неоптимальной маршрутизации, фргаментации

  • Негативно влияет на приложения реального времени (телефония, видеосвязь)

Фрагментация:

  • В IPv4 может выполняться на транзитных узлах

    • Повышенная нагрузка на CPU роутеров

    • Непредсказуемая задержка

    • Потеря фрагмента вызывает потерю всей датаграммы

  • В IPv6 выполняется только отправителем

    • Он должен знать MTU пути до получателя

    • Path MTU Discovery использует ICMP Packet-Too-Big

    • Система зранит PMTU до каждого отдельного получателя

  • TCP обычно избегает фрагментации, заказывая флаг DF

    • Адаптация к MTU происходит с помощью уменьшения MSS

    • MSS = MTU - Размер заголовка TCP - Размер заголовка IP

TCP Bandwidth x Delay Product

  • Узел-отправитель в TCP:

    • Ожидает подтверждения отправленных данных

    • Не может отправить без подтверждения больше Window Size байт

  • На медленных каналах (или на больших полосах пропускания) начинает играть роль Bandwidth x Delay

    • Bandwidth - полоса пропускания

    • Delay - задержка "туда-обратно"

  • BxD не должно превышать размер окна, в противном случае производительность TCP деградирует

    • LFN ("elephant", Long Fat Network, RFC 1072): BxD > 12500

    • Опция Window Scale может помочь

Синхронизация TCP:

  • В случае перегрузки интерфейса несколькими сессиями TCP

    • Пакеты сбрасываются по tail drop, одновременно страдают несколько сессий

    • В этих сессиях уменьшается окно, производительность сессии уменьшается

    • Затребованная сессиями полоса резко падает, перегрузка спадает

    • Сессии начинают "раскачиваться", возникает перегрузка, все повторяется

  • Помогает RED/WRED

    • Пакеты в сессиях сбрасываются не по tail drop, а случайным образом

UDP Starvation:

  • UDP не заботится о том, что случилось с отправленными данными

    • Если отправить данных слишком много, они будут потеряны при транзите

  • Если в одной очереди смешать TCP и UDP

    • UDP сожрет всю полосу пропускания

    • TCP сожмет окно до минимума

Last updated