Intereting Posts
Как я могу устранить SELinux, не позволяя законным программам использовать доступ к моей системе? Каков наиболее эффективный / быстрый способ повторения значений в правиле iptables? Linux перегревается на Macbook Pro 12,1 (начало 2015 года), но не на ноутбуке Asus Как сохранить удаленный каталог в актуальном состоянии с помощью локального каталога автоматически? Linux – Понимание команды stdin / stdout «<» Как вы извлекаете целое слово, содержащее подстроку? Функция Bash не работает в Zsh Разделить физический X-дисплей на два виртуальных дисплея? device mapper на RHEL6 не может создать разработчиков для логического тома LVM Проблемы с разрешением при создании cakephp Не удается запустить Elasticsearch в Linux Mint 18 Vim: В чем разница между дробовыми метками движения. и "?"? Как назначить задачи для GPU Где в исходном коде GRUB2 есть передача / переход к коду ядра? Как удалить родительский каталог, не удаляя подпапки?

Сетевая проблема в vsat

В моей архитектуре сервер-клиент я многоадресный 100 МБ файлов для многих клиентов с сервера по спутниковой линии. Обход сети осуществляется через 5 переходов. У меня есть пропускная способность 10 Мбит / с (т. Е. 1250 Кило в секунду).

Когда я многоадресный первый файл для многих клиентов, первый прыжок получить скорость входящего составляет ~ 9,0 Мбит / с, но конец приемника получить скорость всего ~ 4,2 Мбит / с. Все клиенты имеют 10-кратный полудуплекс.

Я вижу, что есть небольшое использование сети; Но я не знаю, где именно. Если сервер отправляет со скоростью ~ 9,0 Мбит / с, клиент должен получить такую ​​же скорость.

Я использую надежный UDP для многоадресной рассылки.

Есть ли способ узнать, каково использование входящего и исходящего трафика каждого прыжка (для определенного порта)? Существуют ли какие-либо инструменты / утилиты / приложения, которые могут служить цели.

Все прыжки находятся в удаленном месте, так что перелета нет.

инструменты

Есть ли способ узнать, каково использование входящего и исходящего трафика каждого прыжка (для определенного порта)?

Если вы не владеете сетевым элементом или вашим сторонним поставщиком WAN не раскрывает информацию, вы можете оценить только сквозную доступную пропускную способность и пропускную способность по сетевому пути. Смотри ниже.

Существуют ли какие-либо инструменты / утилиты / приложения, которые могут служить цели.

  • Для оценки пропускной способности «доступной пропускной способности», о которой я упоминал выше, вы должны просмотреть архив Sally Floyd для сквозных средств оценки пропускной способности TCP / IP . Я больше всего знаком с yaz , который основан на одноадресных UDP-пакетах.
  • Чтобы узнать, отбрасываете ли вы пакеты в любом заданном хосте маршрутизатора (это ваша проблема с нижней линией), вы можете использовать mtr ; существует также клиент win-mtr , который поддерживает Windows. Чтобы увидеть простой пример того, как я обычно устраняю падение пакетов, см. Мой ответ на SuperUser . Этот метод наиболее эффективен при обеспечении видимости упадок пакетов в первой точке, где они происходят (поскольку mtr не дает заметной видимости вниз по течению выше этой точки, пока вы не исправите первую).

Простой метод получения приблизительной оценки того, где ваши капли – это установка mtr на вашем сервере, а затем запуск сеанса mtr для трассировки потери пакетов для одного клиента многоадресной передачи, когда вы передаете свой 100M-файл. Для более точных измерений вы можете использовать iperf для насыщения сети вместо 100M-файла (при условии, что вы iperf согласовываете время простоя WAN с другими группами в компании).

схема

Остальная часть моего ответа будет использовать следующую схему для справки:

Mcast_problem

На диаграмме:

  • От R1 до R5 – IP-маршрутизаторы
  • S1 и S5 – коммутаторы Ethernet
  • Синий сервер на 172.16.1.0/24 представляет ваш многоадресный сервер.
  • C51-C55 – примеры многоадресных приемников (может быть любое количество приемников)

Специфика WAN между R1 и R5 обычно не имеет большого значения, нам просто нужна базовая топология, поэтому мы находимся на одной странице.

Из того, что я могу сказать, вы говорите, что интерфейс R1 на 172.16.1.0/24 показывает около 9 Мбит / с, пока вы отправляете 100 МБ-файл, а интерфейс R5 на 172.16.5.0/24 показывает около 4.2 Мбит / с, когда клиенты получают через надежную многоадресную рассылку UDP , Когда вы говорите достоверно, я предполагаю, что это означает, что в службу многоадресной рассылки встроена некоторая последовательность пакетов, и клиентское приложение знает, как запросить повторную передачу с сервера.

диагностика

Если это описание верное, есть несколько возможных причин:

  1. Скопируйте ссылку где-то после R1, как вы утверждали в своем вопросе.
  2. Ограничения производительности любого Rx-устройства в пути, включая R1 и R5 (например, превышение предела производительности репликации многоадресной передачи)
  3. Вы получаете ограничение пропускной способности 10M полудуплексного Ethernet.

Причины, вызванные 1 или 2, будут обнаружены с помощью mtr . Тем не менее, причина 3 достойна еще большего обсуждения. 10M / half link обеспечивают максимум 10 Мбит / с для однонаправленной передачи. Если вы отправляете двунаправленный трафик на линии 10M / half, вы, как правило, видите значительно меньше 10 Мбит / с из-за динамики CSMA / CD в ethernet. На полудуплексной линии Ethernet не может одновременно передавать и получать; если станции попытаются это сделать, их кадры будут сталкиваться, и обе станции будут откладывать повторную передачу в случайное время.

Я тестирую сети на жизнь. Когда я проверил эффективную двунаправленную пропускную способность 10M / половинных ссылок, я обычно вижу между 3 Мбит / с и 4 Мбит / с. Номера, которые вы используете выше, очень похожи. У меня нет достаточного количества доказательств для обвинения, но я не удивлюсь, если проблема связана с вашими 10M / половинами ссылок; особенно если связь между R5 и S5 составляет 10M / half.

Предполагая, что вы можете удаленно получать доступ (и иметь привилегированную учетную запись) на каждом компьютере, вы можете попробовать утилиту iftop .

Что-то вроде iftop -f udp -F "port <port> and host <previous hop>" должно предоставить вам весь трафик udp с данного хоста на данном порту. Дополнительные сведения о создании фильтров см. На страницах руководства. (Также обратите внимание: если у вас есть доступ к сети, вы также можете контролировать всю сеть, указав сетевую / сетевую маску следующим образом: -F 10.0.0.0/255.0.0.0 )

Если вы не хотите / не можете установить iftop, но имеете доступ к iptables, вы также можете зарегистрировать свой трафик и использовать его для расчета пропускной способности.

Сначала настройте цепочку для своего приложения и переместите весь входящий / исходящий трафик:

iptables -N $CHAIN && iptables -A FORWARD

Затем настройте правило для отдельной загрузки / загрузки:

 # Downloads iptables -A FORWARD -d $PREVIOUSHOP -j $CHAIN # Town A Uploads iptables -A FORWARD -s $PREVIOUSHOP -j $CHAIN` 

Теперь просмотрите использование трафика для каждой цепочки: iptables -L -v -n