Довольно долго я мучался с потерями пакетов и падением скорости WiFi на своем ноутбуке после некоторого времени работы. И вот я наткнулся на небольшую статью, которая помогла мне обобщить свои знания и осознанно подобрать необходимые параметры для оптимизации работы моей сетевой карты.
Ниже я предлагаю ознакомится с переводом данной статьи.
Данное руководство раскрывает возможности iwconfig
по регулировке настроек вашего беспроводного соединения. Из коробки значения по умолчанию весьма либеральные, они дают хорошую пропускную способоность при оптимальных условиях. В реальности же вы никогда не будете настолько близки к точке доступа, как бы вам хотелось, каналы могут перекрываться, а толпы людей будут пытаются использовать тот же канал, что и вы. И настройки по умолчанию в этих условиях уже не так хороши.
Пожалуйста, при чтении данного руководства держите под рукой открытую справку (страничку man) по iwconfig
. Я опишу только одиночные примеры различных команд. Справка вам даст намного больше детализированной информации относительно того, как оптимально всё настроить.
Первое и наиболее важное — понимание, что может привести к появлению проблем.
Затухание (Attenuation)
[сущ.] свойство чего-либо, что может ослабевать
Затухание происходит при удалении от точки доступа или при наличии на пути сигнала отражающих поверхностей или поглощающих материатов. Примером отражающей поверхности могет быть алюминиевый сайдинг или светоотражающая пленка на окне. Сигналы не могут пройти сквозь такие поверхности, они будут отражаться. Кстати, это касается и радиочастот.
Поглощающие материалы более очевидны. Технология WiFi преимущественно использует частоты вблизи 2,4 ГГц. Микроволновые печи работают на той же частоте из-за поглощения водой этих частот, что позволяет нагревать воду. Таким образом, любой большой объем воды между вами и точкой доступа уменьшит сигнал. Примеры: деревья (и повышенная влажность рядом с ними из-за испарения), цемент, бетон и шлакоблоки — все они примерно на половину состоят из воды (по весу). Большинство же других строительных материалов содержат меньшее количество воды и создают меньше проблем.
Симптомы:
- Слабый сигнал
Варианты решения:
- Разместите точку доступа в прямой видимости.
- Установите направленную антенну для увеличения ославленного сигнала.
- Увеличьте мощность передатчика.
- Увеличьте чувствительность приемника.
- Снизьте скорость соединения для увеличения соотношения сигнал/шум.
Шум (Noise)
[сущ.] электромагнитная активность, мешающая связи
Если затухание снижает уровень сигнала, то шум повышает уровень шума. Грубо говоря, затухание и шум приводят к одинаковому эффекту — снижается соотношение сигнал/шум. А раз так, то и варианты решения будут те же. Ну разве что увеличение чувствительности приемника не поможет...
Обычно это шум окружающей среды, или, по крайней мере, непреднамеренный побочный эффект. Но с другой стороны есть один особый случай.
Но сначала небольшое отступление от темы. Концепция 50% в технике очень важна. Часто трудно провести четкую границу. Многие измеримые свойства просто затухают (сходят на нет, fade away), но никогда не заканчиваются. Таким образом, мы должны искусственно ввести порог, где что-то заканчивается. Этот порог часто 50%. Как только что-то пересекает 50%-ный порог, оно больше не существует. То, где происходит этот 50% переход, является одной из самых важных технических характеристик для многих изобретений.
Разработчики стандарта 802.11 разместили все каналы как можно ближе друг к другу, на границе 50% переходов по мощности. В теории, это означает, что два канала не будут друг с другом интерферировать. Но только в равных условиях. На практике же, если ваша точка доступа работает на первом канале, а у соседа на втором, то вы не сможете воспользоваться своей точкой доступа, находясь в гостях у соседа. Ваша точка слишком далеко и сигнал слишком ослаблен. (В некоторых случаях можно обойтись направленной антенной.)
Для вас ближайшие точки доступа — это просто шум. Можно применить вышеприведенные техники для снижения уровня шума, с тем лишь исключением, что более мощный передатчик будет мешать уже соседу из-за интерференции сигналов.
Если вам нравится делать антенны, то это может решить и остальные проблемы. Другие точки доступа в вашей местности могут «ослепить» ваш приемник. Например, в развитом районе вы можете испытывать трудности со связью на расстоянии более 100 метров. В то время как при отключении всех ближайших точек доступа, забивающих радиоэфир, та же самая антенна сможет видеть точки доступа в километре от неё.
Конкуренция (Contention)
[сущ.] соревнование/состязание за приз
Когда несколько человек используют одну и ту же точку доступа, страсти накаляются. Во-первых, каждый работает на самой медленной скорости. Если хоть один человек подключится с древнего адаптера WiFi стандарта 802.11b, никто не разгонится быстрее, чем 11MB. (Для high end точек доступа с множеством антенн, это не может справедливо.)
Самая большая проблема конкуренции — это возможность использовать только один радио канал одновременно.
Каждый по очереди занимает канал и должен завершить передачу за свою долю времени. Это, пожалуй, самая большая проблема с WiFi на Linux. Настройки по умолчанию настроены для оптимальной передачи и эти значения ужасны для ситуаций с большим количеством разногласий (коллизий).
Симптомы:
- Невозможно установить соединение.
- Невозможно получить IP-адрес.
- Частые задержки и таймауты при загрузке веб-страниц.
- Много чрезмерных повторов и поврежденных пакетов.
Варианты решения:
- Увеличьте скорость. Чем выше скорость подключения каждого, тем короче время передачи, тем меньше коллизий. Это обычно настраивается на стороне точки доступа, а не клиента.
- Фрагментируйте передачу. Обычно мелкие пакеты собираются в один, настолько большой, насколько это возможно. Используйте
iwconfig wlan0 frag 256
, чтобы разбить пакеты на меньшие размеры. Это немного снизит скорость передачи, зато будет создавать меньше коллизий. - Включите rts handshaking. Перед отправкой пакета клиент совершает предварительный обмен с точкой доступа, чтобы убедиться, что та готова принять данные. Это тоже снижает скорость. По умолчанию такой обмен проводится только для пакетов длиннее 2Кб. Чтобы заставить клиента совершать такой обмен при каждой передаче пакета, используйте
iwconfig wlan0 rts 1
. - Увеличьте количество повторов. Настойчивость — ключ к возможности пробиться через толпу, это справедливо и для беспроводной сети. Обычно ваша карта сдается после семи попыток передачи пакета. Тридцать является более разумным значением, настраиваится с использованием
iwconfig wlan0 retry 30
.
Что насчет iwpriv?
iwpriv
— шокирующе мощная утилита. В основном все нестандартные функции сливают туда. Некоторые опции бессмысленны, другие замечательны, все завиист от драйверов, ни одина из них не документирована в полной мере. Экспериментируйте с вашей wifi картой. iwpriv
скорее всего нуждается в отдельной статье.
После подключения
Вам нужен ip-адрес. Обычно dhcpcd чрезвычайно медленный и на слабом железе часто таймаутится. Dhcpcd будет работать в 40 раз быстрее, если его запустить dhdpcd -A wlan0
. До того, как Amtrak начали размещать wifi на поездах, -A
имело решающее значение для стягивания нового пуша с git или получить почту по IMAP во время пролета мимо станции. Обычно -A
доверяет точке доступа и пропускает проверку того, что полученный ip-адрес уникален в сети.
В заключение
От себя добавлю, что я не перевел последнюю часть статьи, где приводятся предупреждения о легальности повышения мощности передатчика. С этим, я думаю, и так всё понятно.
Мне эта статья весьма помогла, надеюсь, что и вам тоже.
sudo iwconfig wlan0 rts 1024
sudo iwconfig wlan0 retry 30
Автор: icoz