8

При использовании uTorrent DNS периодически перестает отвечать на запросы.

Эта проблема, по-видимому, не связана с чрезмерным использованием полосы пропускания (как видно от маршрутизатора к компьютеру), но может быть связана с некоторой формой защиты от затопления, обеспечиваемой маршрутизатором (большее количество входящих подключений к маршрутизатору, чем Windows примет).

Как заставить сеть работать должным образом (при этом, конечно, все еще можно использовать uTorrent)?

5 ответов5

13

клиенты bittorent агрессивно подключаются к одноранговым узлам ... и некоторые маршрутизаторы интерпретируют это как синхронный поток.


Открытые соединения

Когда uTorrent загружен и загрузка / выгрузка приостановлена (не остановлена), он поддерживает открытые соединения с вашими коллегами. Тем временем легионы интернет-пиров будут пытаться связаться с вами, чтобы узнать, есть ли у вас биты, которые они хотят.

В конце концов вы достигнете предела открытых соединений, установленного вашей ОС (в Windows 7 это 10 подключений), и подключения от новых клиентов начнут ставиться в очередь на вашем маршрутизаторе.

Поставленные в очередь клиенты будут активно проверять, является ли соединение бесплатным. Этот агрессивный опрос может быть интерпретирован маршрутизатором как синодальная атака.

Решения

  • уменьшите свой полуоткрытый лимит соединения в программном обеспечении bittorent ниже предела соединения, установленного вашей ОС
  • отключите защиту от наводнений IP на вашем маршрутизаторе / модеме.

Насыщенность полосы пропускания

Кроме того, при неограниченном соединении uTorrent (или любого массового трафика) канал загрузки (и, возможно, загрузки) достигает полного использования, вынуждая некоторый "обслуживающий" трафик занять заднее место, что в итоге снижает полезность сети.

Вот пример:

  1. Высокая скорость загрузки (торрент или иным образом) насыщает нисходящий канал.
  2. Пользователь пытается перейти на сайт, который недавно не посещался. Компьютер генерирует запрос на информацию DNS для нужного сайта. "Загрузка" запроса на DNS-сервер выполнена успешно (не требуется для доступа к восходящему каналу).
  3. DNS-сервер отвечает (или пытается), но ответ зависает при попытке добраться до компьютера пользователя, потому что канал загрузки насыщен содержимым загрузки, и поскольку что-то должно быть отброшено, а загрузка агрессивна в отношении поддержания скорости, Ответ DNS сбрасывается (в некоторый момент, прежде чем он попадает на локальный маршрутизатор).

То же самое может произойти, если загрузка не ограничена. При насыщенной загрузке пакеты, известные как TCP-ACK (которые отправляются как ответы типа «Эй, я получил пакет xyz успешно»), зависают, что приводит к остановке загрузки, в результате чего просмотр веб-страниц становится очень неоднородным.

Решения

  • Выясните, какие максимальные возможности вашего соединения (вверх и вниз, индивидуально), и установите максимальную скорость ваших клиентов групповой передачи, чтобы не использовать более 80% этой скорости. Это оставит "запас" для таких вещей, как пакеты DNS и TCP-ACK, чтобы обойти объемный трафик и быстро с ним справиться.
  • Используйте маршрутизатор, который может обрабатывать формирование трафика таким образом, чтобы определенный трафик (DNS, PCP IMCP, TCP-ACK) мог быть расставлен по приоритетам перед другими формами трафика, а некоторые виды трафика (в частности, торрент) могут быть расставлены по приоритетам. Это мой предпочтительный метод. Это может дать дополнительное преимущество, позволяя использовать полный канал вверх и вниз для торрент-трафика, когда трафик с более высоким приоритетом не вызывает его.
  • Используйте некоторую комбинацию 1 и 2, чтобы ограничить "неправильное поведение" трафика.

Если вас интересует дополнительная информация о формировании трафика дистрибутивов Linux/BSD, MonoWall и IPCop имеют хорошую информацию.

5

Когда у меня что-то подобное, Wireshark - мой лучший друг.

Но сначала хорошо понять эти три вещи:

  • Тот факт, что ping работает, не означает, что DNS (или любой другой сервис) работает, и наоборот.

    Это связано с тем, что ping использует совершенно другой протокол (ICMP, в то время как DNS использует IP и комбинацию UDP и TCP) на совершенно другом уровне сетевой модели. Все, что находится на пути, от вашего персонального брандмауэра через количество маршрутизаторов до фактического хоста, на котором работает служба, может быть потенциально настроено на отбрасывание одного из них, но не другого (будь то паранойя администратора или случай сбоя), хотя это обычно случается с ICMP, чем с другими

  • Как правило, также полезно уточнить, теряются ли ваши (DNS) запросы или ответы.

    Что ж, конкретная программа, которую вы используете, должна прояснить это для вас, но, как правило, проще увидеть ее в графическом интерфейсе Wireshark :)

  • Как я уже упоминал, DNS обычно использует UDP как способ доставки содержимого запроса и ответа.

    В отличие от своего TCP-протокола, UDP определен таким образом, что нет никакой гарантии, что пакет будет доставлен вообще, и нет ничего, что маршрутизатор должен (или не может) сделать, чтобы сообщить вам о сбое. (Это жертва за еще одну особенность UDP: это невероятно быстро. Маршрутизаторы не должны хранить информацию об отправителе и порядке пакетов, они просто быстро передают ее и забывают. Они даже могут довольно безопасно дать им более высокий приоритет, чем TCP.)

Обычно первым делом я бы сделал:

  1. Запустить Wireshark
  2. Нажмите Параметры захвата
  3. Для фильтра Capture установите host 1.2.3.4 чтобы убедиться, что вы перехватываете трафик только между вами и 1.2.3.4.
  4. Начать захват
  5. После того, как вы все загорелись, попробуйте свои команды

Тем не менее, основываясь на вашем последнем обновлении: я не знаю эту часть программного обеспечения, но я определенно подозреваю, что клиент uTorrent. Приложение может отправить слишком много UDP, что, например, на домашнем маршрутизаторе достигнуто некоторое ограничение, и оно начинает выбрасывать пакеты UDP.

3

Я бы попробовал инструмент DNS Benchmark от GRC. Он проверяет DNS-серверы, которые вы настроили для использования, а также множество других DNS-серверов. Он проверяет не только их скорость, но и надежность. Это бесплатно и не требует установки (это только для Windows). На этих страницах также есть много полезной информации о DNS.

3

Я хотел бы знать, в какой части мира вы находитесь, и это помогло бы получить результат tracert/traceroute для google.com и для 8.8.8.8.

Возможно, проблема вызвана вашим маршрутизатором или вашим подключением к серверам Google. Непостоянная природа вашей проблемы имеет запах плохой связи, но при анализе проблем с подключением к Интернету слишком много факторов, чтобы дать вам прямой ответ.

Сеть Google может время от времени перегружаться. У меня есть ежедневные случаи, когда запрос на google.com истекает, и его необходимо перезапустить, и я использую его локальный сервер для своей страны. Отчасти это вопрос удачи, в какой сегмент сети Google направляется запрос, и даже могут быть недостатки в алгоритмах внутреннего распределения запросов Google.

Вероятно, то же самое происходит с именными серверами Google. Хотя у Google их несколько, запрос может быть перенаправлен на мгновенно перегруженный внутренний сервер или сегмент сети.

Вы не упомянули, в какой части мира вы находитесь. Если вы не находитесь в США, то каждый запрос может проходить по разному маршруту и могут возникать случайные проблемы или задержки, если они зависят от слишком большого количества промежуточных серверов.

Не говоря уже о "оптимизации" или возможных недостатках вашего интернет-провайдера, или о любых оптимизациях, которые Google, возможно, сделал, чтобы распределить бремя по всему миру на своих серверах.

Использование удаленного DNS-сервера может наказать вас другими способами. Увидеть :

Почему использование Google DNS / OpenDNS - плохая идея
Должен ли я использовать DNS моего интернет-провайдера или Google 8.8.8.8?

2

Я нашел решение, хотя я не совсем понимаю его, если кто-то может объяснить это должным образом, пожалуйста, опубликуйте его как ответ, и я дам ему награду, потому что другие ответы не помогли.

Как я упоминал в приложении к вопросу, uTorrent был связан с проблемой, потому что закрытие uTorrent решило проблему. Я решил выяснить, как это исправить без необходимости закрывать uTorrent. В этой теме и в этой (это было очень актуально, потому что люди там имеют одинаковый ISP и маршрутизатор), я нашел предложения, что я должен отключить защиту от наводнений IP на моем маршрутизаторе, и это сработало! Проблема и решение были экзотическими, возможно, специфичными для маршрутизатора Cisco EPC3925 или даже для конкретного интернет-провайдера (популярного в Европе, поэтому было сложно что-то гуглить на английском).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .