Что за шум, а связи нет!
народное творчество
Похоже, не только у меня проблемы со связью. |
В то время как цивилизованный мир уже переключился на широкополосный доступ, кабельные модемы и другие хитрые устройства, большинство из нас вынуждено сидеть на dial-up. При таком соединении ping на серверах Counter-Strike переваливает за несколько сотен. И приходится забыть об удовольствии показать этим ламерам, как надо играть. А без постоянной практики когда-то высокий уровень игры может опуститься ниже плинтуса. В этой статье я поделюсь опытом, как в значительной мере решить эту проблему.
Я расскажу о комплексном подходе к решению данной проблемы. В отличие от большинства статей подобной тематики, я не ограничусь конфигурацией (config) игры, но еще и расскажу о настройках Windows. Поэтому даже люди, не играющие в Counter Strike, смогут найти в этой статье немало полезной информации.
Для начала несколько общих советов. Некоторые из них очевидны, однако, несмотря на это, многие ими пренебрегают:
На этом скриншоте должны были быть двое моих товарищей по команде. Куда они делись, можно понять из надписи «проблемы соединения» в правом верхнем углу. |
Выбирайте сервер в своем городе. Еще лучше, чтобы он принадлежал вашему провайдеру. Конечно, иногда в родном Нижненосочинске сервера тормозят больше, чем в Гондурасе, но подобные случаи редки.
Когда ping переваливает за две сотни, невозможно стрелять прицельно. Поэтому, даже если у вас денег под 16000, покупайте H&K MP5 (3-1). Если вы все-таки решили целиться — цельтесь на опережение.
Не поленитесь заново провести телефонную линию от лестничной клетки до модема, предварительно озаботившись хорошим кабелем. Результат окупит себя и по времени, и по деньгам. После чего возьмите паяльник и пропаяйте все контакты. Главное — проводить кабель подальше от источников электромагнитного поля, таких, как распределительные щитки, счетчики, провода электросети и др.
Параллельные телефоны либо выключайте перед началом работы модема, либо подключайте через модем.
Рядом с внешним модемом не должны находиться приборы, имеющие встроенные трансформаторы:
факсы;
стабилизаторы напряжения (сетевой фильтр);
приборы, с преобразователем напряжения.
Поэкспериментируйте с изменением провайдера или телефона дозвона. Бывают случаи, когда провайдер, прекрасно работающий у вашего друга, ни в какую не хочет выдавать номинальную скорость больше 22000. Все зависит от совместимости АТС.
Это интересно: иногда отключение сжатия данных несколько уменьшает ping. Особенно это актуально для широкополосного доступа. Но эта функция на 2-3% увеличивает скорость в других приложения и на столько же уменьшает трафик. Эту опцию можно найти по адресу: Мой компьютер -> панель управления -> телефон и модем -> модемы -> свойства -> дополнительные параметры связи -> изменить умолчания.
Скачайте новые драйвера и прошивки. Иногда это заметно помогает! Тем более что уважающие себя компании создают прошивки, специально адаптированные для российских линий.
Почитайте документацию к модему и попытайтесь настроить строку его инициализации в соответствии с качеством вашей телефонной линии. В Windows XP дополнительные параметры строки инициализации находятся в диспетчере устройств в свойствах модема, закладка «дополнительные параметры связи». Дополнительную информацию вы сможете найти по адресу: www.people.nnov.ru/belyanin/1251/faq_sp.html
Думаю, излишне говорить о значимости хорошего модема.
Настройки Windows
Повеселились — и хватит. Теперь рассмотрим более сложные вопросы. Как показывает практика, в Windows 98 ping немного меньше, чем в Windows NT, Windows 2000 и Windows XP. Это объясняется меньшей задержкой при передаче пакетов. Правда, для нас существенной разницы нет, будет ping 200 или 196. Это более актуально для владельцев широкополосного доступа.
QoS
Счастливые обладатели Windows XP Professional Edition могут несколькими щелчками мыши повысить скорость работы в интернете на 20%. Я не шучу. Разработчики решили зарезервировать для нужд системы уже упомянутые 20%.
Значение скорости порта должно быть максимально, ведь при аппаратном сжатии модем может принимать больше, чем номинальная максимальная скорость в 56K. |
Отключить эту негуманную службу можно следующими способами:
В меню «Пуск» выбираем «Выполнить», затем в появившейся строке набираем «gpedit.msc» и нажимаем Enter. Откроется окно «Групповая политика». Заходим в Административные шаблоны -> Сеть -> Диспетчер пакетов QoS -> Ограничить резервную пропускную способность. По умолчанию стоит значение «не задано». Это и означает резервирование 20%. Так что явно задайте — 0%.
В меню Панель управления ->Администрирование -> Службы отключите QoS RSVP.
В меню «Пуск» выбираем «Выполнить» пишем «msconfig», затем щелкаем на закладку «службы» и выключаем QoS RSVP.
ISpeed
Хотя интернет можно настроить и без помощи каких-либо программ, я рекомендую воспользоваться iSpeed, так как ручной процесс настройки отнимает слишком много времени и сил. Эту программу вы можете найти на нашем диске.
Закладка Adapters
Для начала немного теории. MTU (Maximum Transmission Unit) — максимальный размер пакета данных, который может быть передан за один физический кадр по протоколу TCP/IP. Дело в том, что данные от компьютера к компьютеру в интернете идут не сплошным потоком, а кадрами (пакетами) строго определенного размера. Провайдеру при повременной оплате невыгодна большая скорость, ведь чем меньше скорость, тем дольше пользователи вынуждены сидеть в интернете. Поэтому ISP устанавливают разные MTU. Хотя есть и другие причины того, что у разных провайдеров разные MTU, но они выходят за рамки данной статьи.
Так нас встречает iSpeed |
Расскажу, как влияет этот параметр на скорость работы в интернете. Пакет состоит из заголовка (40) и полезных данных (MTU-40). Как нетрудно догадаться, чем больше MTU, тем меньше издержки на передачу заголовков. Путем нехитрых подсчетов можно выяснить, что выигрыш между 1500 и 576 — около 5%. Конечно, это не так много, как хотелось бы, но с миру по нитке... Тем более что возрастет скорость не только в Counter-Strike.
Настройка MTU чем-то напоминает в игру в Black Jack (очко). Набрал 19 — хорошо, 20 — еще лучше, 21 — прекрасно, а 22 — очень плохо. Так вот, если вы переборщите с MTU, то пакеты будут разбиваться и наполовину заполняться «мусором». Например, мой провайдер был создан очень давно, когда все еще работали в Windows 95. В этой операционной системе стандартный параметр MTU — 1500, а мой провайдер поставил 1499. Это значит, что пакет разбивался на 2 по 1499. Другими словами, чтобы отправить по назначению 1500 целевой информации, нужно было передать 2998 (2*1499) — из-за этого скорость падала почти вдвое! Я рассмотрел критическую ситуацию, но потери в 20-30% — это суровая реальность. Еще один минус больших пакетов — увеличение потерь на плохих линиях.
Приведу еще один пример. Если ваш провайдер имеет установки MTU=576, а у вас задано 1500, то каждый ваш пакет будет разбиваться на три по 576 байт: 576+576+576=1728. То есть, 228 байт балласта будут добавляться к каждому вашему пакету. В этом случае происходит снижение скорости на 15%-20%.
Обнаружение MTU методом максимального нефрагментируемого пакета. |
Как вы уже догадались, лучше всего, когда ваш MTU не больше и не меньше соответствующего параметра вашего провайдера. Расскажу о способах определения MTU вашего провайдера:
Позвоните в службу технической поддержки вашего провайдера. Это самый простой способ. Не факт, что они вам скажут. И даже если скажут — лучше перепроверить. Как говорится — доверяй, но проверяй.
Войдите в папку «Удаленный доступ», найдите там значок своего соединения и, щелкнув по нему правой кнопкой мыши, выберите пункт «Свойства». На странице «Общие» открывшегося меню жмите кнопку «Настроить» возле строки с названием вашего модема. В диалоге свойств модема переходите на вкладку «Дополнительно», где установите флажок «Выводить окно терминала после соединения». Теперь соединяйтесь с провайдером и при появлении окна терминала вводите вручную имя пользователя и пароль по соответствующим запросам. Скорее всего, после не интересующей нас информации терминал высветит что-то вроде «MaxMTU is 524». Но и тут не помешает перепроверка.
Запустите iSpeed и нажмите кнопку «Discover MTU». В появившемся окне наберите адрес сайта вашего провайдера и нажмите кнопку «Begin Discovery». Программа вам ответит что-нибудь в таком духе:
«...Checking packet size of 1448 bytes... ok
Checking packet size of 1460 bytes... ok
Checking packet size of 1472 bytes... needs fragmented
Packets required fragmenting for an MTU of 1472
Largest MTU supported seems to be 1488
(last packet size plus 28 bytes overhead)»
Число в последней из строк, заканчивающихся «...ok» (в данном случае это 1460), поместите в поле «start with packed size of». А в поле «increment packet size by» введите единицу. Опять нажмите кнопку «Discover MTU». Он вам выдаст следующее:
«...Checking packet size of 1471 bytes... ok
Checking packet size of 1472 bytes... needs fragmented
Packets required fragmenting for an MTU of 1472
Largest MTU supported seems to be 1499
(last packet size plus 28 bytes overhead)»
В предпоследней строчке указан MTU провайдера. Но надо еще перепроверить параметры MTU, установленные на сервере Counter-Strike. В поле адреса укажите адрес вашего любимого игрового сервера. Например, cs.soborka.net. Не меняя других параметров, в третий раз нажмите кнопку «Discover MTU». Если этот и предыдущий MTU одинаковы, то все хорошо. Если нет — пользуйтесь MTU сервера Counter-Strike. При необходимости можно проверить несколько игровых серверов и пользоваться минимальным значением. Либо отказаться от одного-двух серверов с низким MTU.
Это важно: если при установке рекомендованного программой MTU наблюдается понижение скорости, отнимите от MTU 28. Если и после этого скорость не увеличится, отнимите еще раз 28 от MTU.
Закладка Global
Как мы уже обсудили, каждый кадр (пакет) состоит из двух сегментов — заголовка (40 байт) и фактических данных (MTU-40). И если не принимать во внимание фрагментации пакетов, MTU=1500 (максимум) был бы идеален. Размер той части пакета, в которой содержатся только фактические данные, называется MSS (Maximum Segment Size) — это еще один параметр протокола TCP.
RWIN — Receive Window — размер буфера, в котором накапливается содержимое области данных (MSS) нескольких полученных пакетов, прежде чем оно передается дальше, например, в браузер. При недостаточном размере этого буфера иногда происходит переполнение, и поступающие пакеты теряются. Размер буфера обязательно должен быть кратен MSS, и обычно его устанавливают равным 4-8 * MSS. Однако чрезмерно большой размер буфера также нежелателен, особенно на плохих линиях. Иначе при потере одного пакета будет повторно затребован не один потерянный пакет, а все пакеты из буфера. Сначала установите параметр RWIN Multiplier на значение 2. Если будут возникать ошибки при работе в интернете — повысьте его.
PMTUBlackHoleDetect — обнаружение «черных дыр». Установка этого параметра разрешает протоколу TCP пытаться обнаружить никуда не ведущие роутеры. Данная процедура замедляет работу в интернете — поэкспериментируйте с ее отключением. Верным знаком того, что вы сделали что-то не то, может служить возникновение «ошибки 404» на многих серверах.
PMTUAutoDiscover — нахождение оптимального пути, исходя из вашего MTU. Эта опция немного тормозит связь, но зато в большинстве случаев она позволяет вашим пакетам проходить нефрагментированными. Если у вас низкий MTU (например, 576), то функцию можно отключить. Даже при больших MTU отключение этой функции очень часто уменьшает ping в игре. Но овчинка выделки не стоит — ведь это сильно уменьшает эффективность соединения со многими серверами. Хотя поэкспериментировать не помешает.
Другие параметры в этой вкладке нас не интересуют.
Если вы будете наблюдать понижение скорости в Counter-Strike или в других приложениях, то сможете провести откат с помощью вкладки History. Остальные закладки представляют собой различные тесты.
Настройка Counter-Strike
Непосредственно к параметрам соединения относятся следующие команды:
Рекомендуемые значения параметров в зависимости от ping'а |
||||
Параметр/ping |
120-170 | 170-250 | 250-400 | 400-600 |
cl_updaterate |
20 | 15 | 10 | 5 |
cl_cmdrate |
25 | 20 | 15 | 10 |
cl_rate |
3500 | 3000 | 2000 | 1000 |
rate |
3500 | 3000 | 2000 | 1000 |
cl_resend |
3 | 2 | 1 | 1 |
pushlatency |
-100 | -150 | -200 | -350 |
cl_cmdbackup |
2 | 2 | 2 | 1 |
cl_updaterate — число обновлений информации от сервера клиенту в секунду. Другими словами, это скорость, с которой обновляются сведения об игре. Я рекомендую ставить от 10 до 25. Чем меньше этот параметр, тем меньше нагружен канал.
cl_cmdrate — число обновлений информации от клиента серверу в секунду. Иначе говоря, скорость, с которой посылаются команды на сервер. Эта команда аналогична с cl_updaterate, и рекомендуемые значения те же — от 10 до 25.
rate и cl_rate — ограничение входящего трафика. Рекомендуемые значения — от 1000 до 3500 (байт в секунду).
cl_cmdbackup — количество пакетов посылаемых на сервер. Ставьте единицу или двойку.
cl_resend — время, через которое пакет будет снова послан, если предыдущий не дошел. Чем меньше значение, тем быстрее будет исправлена ошибка при передаче пакета данных. Но не все то золото, что блестит: на некоторых линиях cl_resend ставят на уровне не 1, а 2, и иногда даже 3. Это связано с тем, что, если шум, помешавший дойти первому пакету, будет продолжаться, то второй пакет тоже не дойдет. Из-за этого произойдет ошибка (сообщение «Connection Problem»), в результате чего вас выбросит с сервера. Сначала поставьте на 1. Если вас будет часто выкидывать — увеличивайте.
Увеличение FPS на слабых машинах |
gl_picmip Детализация текстур. Может принимать следующие значения: 1 (красиво, но долго), 2, 3 (быстро и уродливо). cl_himodels Режим высокого качества моделей игроков (1 — включить, 0 — выключить). cl_bob Частота раскачивания изображения при беге (ставьте 0). cl_showfps Показывать число fps (1 — включить, 0 — выключить). setinfo ah 1 — включение автопомощи, 0 — отключение. Никому не нужна эта тупая помощь. Так что смело ее отключайте. setinfo dm Показывать информацию о карте после загрузки (1 — включить, 0 — выключить). setinfo vgui_menus 0 — простое меню, 1 — с кистями и глазетом. violence_ablood Кровь и т.д. (0 — для ускорения) r_dynamic Динамическое освещение (0 — выкл.) fastsprites Отображение различных спрайтов (дым от гранаты): 0 — реалистично, 2 — быстро. max_smokepuffs Число одновременно видимых дымков от пуль. |
cl_lw (1 или 0) — все эффекты и действия, связанные с оружием, просчитываются на стороне клиента. Это помогает значительно оптимизировать работу, но у вас не будет стопроцентной гарантии, что ваш видеоряд соответствует действительности. Хотите играть без задержки — ставьте значение 1. Но при больших разбросах оружия дырки в стене у вас и сервера будут в разных местах. Я думаю, вы это переживете.
cl_lc (1 или 0) — компенсация плохого соединения сервером. Данный параметр заставляет сервер принять во внимание ваш ping и значительно оптимизировать работу, но злобный админ может отключить эту опцию, и cl_lc, да, впрочем, и cl_lw будут игнорироваться. Как вы догадались, значение этого параметра тоже должно быть равно единице.
Следующие три опции существенно не влияют на ping. Если хотите, можете их отключить, но некоторые сервера иногда вас будут выкидывать. Если дела у вас обстоят совсем плохо — отключайте.
cl_allowupload (1 или 0) — разрешить скачивание сервером ресурсов клиента.
cl_allowdownload (1 или 0) — разрешить скачивание ресурсов с сервера к игроку.
cl_download_ingame (1 или 0) — разрешить скачивание ресурсов прямо в игре, например, карты, которой у вас нет.
Это интересно: загрузку ненужной вам карты можно прервать клавишей «Esc».
Значение pushlatency должно быть примерно равно 50-100% значения вашего ping, взятым со знаком минус. Например, если ваш ping около 300, то установите pushlatency «-200».
mp_footsteps — звук шагов. Если у вас сгорели колонки, или ping совсем уж большой — отключайте. В противном случае — оставьте. Конечно, все зависит от вашего стиля игры. Например, если вы врубаете тяжелый рок и бежите сломя голову обходным путем на противника, то звук шагов вам не нужен.
hud_fastswitch — быстрая смена оружия. В этом случае вы не нажимаете сначала на ячейку, а затем на выстрел, и лишь тогда меняется оружие, а сразу нажимаете на ячейку, и оружие меняется.
Поскольку качество соединения довольно сильно меняется в зависимости от времени суток, полезно создать несколько подключаемых конфигураций и, при необходимости, переключать их.
Сделать это так же легко, как два байта переслать. В директории мода создается несколько файлов — например, modem1.cfg и modem2.cfg. Затем в config.cfg прописываем такую строку:
bind «xxx» «exec modemN.cfg»,
где xxx — имя клавиши для активации, где modemN modem1, modem2 или modem3.
Все изменения можно наблюдать при помощи графика непосредственно в игре. Включить и настроить его можно при помощи команд:
net_graph «1»
net_graphwidth «192» // Ширина графика
net_graphpos «1» // Расположение графика
Мониторинг связи |
||
Я думаю, ни для кого не новость, что единственный параметр Windows — скорость связи — практически никак эту самую связь не характеризует. И соединение на скорости 50 Кб/с может быть существенно медленнее, чем 30 Кб/с. Согласитесь, что причины плохой связи могут быть разные: плохая телефонная линия, загруженность сервера или недобросовестный провайдер. Так вот, программа NetMedic поможет вам найти причину плохой скорости. А это уже полдела. Эта программа — единственная в своем роде, она позволяет оценить качество работы вашего ISP благодаря статистике. За несколько дней NetMedic выдаст вам полный список грехов вашего провайдера. Эту программу вы также можете взять с нашего компакт-диска. |