» Новости
» Регистрация :: Вход
» Форумы сайта :: IRC-чат
» Файловый архив
» Все статьи :: Все обзоры
» Галерея
» Поиск
 
Клиент-сервер в HL и CS, Newbie e-mail автора
Настройка сетевых переменных
.: Просмотров: 4957 :: Печатать текущую страницу :: Печатать все страницы :.
Предыдущая страница Все страницы: Следующая страница

" Перевод: Newbie

" Оригинал статьи

Настройка сетевых переменных

Различными параметрами сетевой настройки управляют четыре команды:

cl_cmdrate - количество раз в секунду, которые клиент сообщает о своих действиях серверу. Помните, что объем данных, передаваемых за одно обновление зависит от происходящего вокруг.

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

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

rate - устанавливает лимит байт в секунду, которые сервер может передать клиенту. Со стороны сервера это значение можно ограничить с помощью команды sv_maxrate.

Обновления от клиента к серверу обычно содержат очень мало данных - примерно 20 байт.

Обновления от сервера к клиенту сравнительно велики - от 30 байт на тихих участках картыдо 175 байт в бою.

Для примера, модем 56k имеет максимальную исходящую ширину канала 33.6k, и входящую - 56k. Эти значения - бит в секунду (то есть 33600 бит в секунду). Однако это - общее значение, а не количество данных, то есть часть из этого используется на собственно поддержание соединения и сигнализацию (примерно 10 процентов) и только часть может содержать реальные данные. В результате соединение на 33.6k в реальности может передавать реальные данные только со скоростью 30.2k, что составляет 3780 байт (для тех кто не знает - в одном байте - 8 бит) - и это как раз значение, которому должен равняться параметр cl_rate (подразумевается идеальное соединение - если модемная линия низкого качества, скорость соответственно падает).

Соответственно, идеально соединение на 56k дает нам 56000 бит в секунду. Уменьшаем на 10процентов и получаем 6300 байт в секунду. Это и есть нужное на значение rate.

rate равняется скорости скачивания умноженной на 0.9 и разделенной на 8

cl_rate равняется скорости закачки умноженной на 0.9 и разделенной на 8

Учитывая что клиентам особо нечего сообщать серверу, в общении клиент -> сервер оченьредко возникают проблемы даже на модемах.

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

Дробные значения cl_rate и rate не оказывают никакого влияния и миф о том, что они улучшаю, что либо - не более чем миф.

Как упомянуто выше, обновления от клиента к серверу обычно очень малы и находятся где то в районе 20 байт. На 56k модеме с идеальной линией доступны 3780 байт в секунду, так что cl_cmdrate может быть установлен в 189. В Half-life существует ограничение на значение cl_cmdrate равное 60.

Обновления от сервера к клиенту содержат больше данных. Большие обновления (например вовремя боя) могут достигать 175 байт. Имея 6300 байт в секунду на идеальном 56k соединениимы можем выставить cl_updaterate равным 36.

cl_updaterate равняется значению rate деленному на 175

cl_cmdrate равняется значению cl_rate деленному на 20

У игроков со скоростными соединениями значения будут отличаться. Во-первых потому, что скоростное соединение обычно дает большую полосу, чем сервер позволит использовать. Соответственно значения rate и cl_rate необходимо выставлять на максимум, чтобы использовать весь доступный канал.

Максимальное значение для rate и cl_rate равняется 20,000.

Вычисление правильных значений cl_cmdrate и cl_updaterate обычно зависит от конкретного сервера, потому что значение sv_maxrate ограничивает доступную ширину канала, и соответственно влияет на число обновлений.

Как указано выше, в Half-life существует ограничение значение cl_cmdrate и cl_updaterate равное 60, однако рекомендуемое максимальное значение - 75 (больше - не меньше, верно?), которое можно уменьшать для соответствия sv_maxrate.

Команда net_graph отображает информацию о состоянии соединения между сервером и клиентом.

Интересующее нас значение - "удушье" (choke).

Choke отображает количество обновлений, которые не удалось послать по причиненедостаточной ширины канала.

Значение Потеря (Loss) - другое, редко используемое значение, которое отражает количествообновлений, которые были посланы, но не были приняты. Если игрок испытывает значительныепотери, то проблема скорее техническая и относится к самому соединению, а значит выходитза рамки этой статьи.

Запустите net_graph и следите за значением choke. Когда эффект "удушья" возникает - немного уменьшайте значения cl_updaterate и cl_cmdrate до тех пор, пока во время боя "удушье" не прекратит возникать вообще.

Основная цель - иметь максимально возможные значения cl_updaterate и cl_cmdrate, сохраняя при этом полное отсутствие "удушья".

Предыдущая страница Все страницы: Следующая страница
Реклама

 
Наша-Life
Свяжитесь с нами
Экспорт новостей в RSS 2.0