Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

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

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Размер сетевых пакетов в CS 1.6

Статус пользователя ravenyd123
сообщение 13.5.2013, 9:38
Сообщение #1


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

У меня возник вопрос такой о размере пакетов, которые гуляют от клиента к серверу и обратно.
На сервере стоят самые распространенные значения кваров:
sv_minupdaterate 30
sv_maxupdaterate 101
sv_minrate 5000
sv_maxrate 25000

У клиента cl_updaterate и cl_cmdrate 101

Снифер показывает хождение пакетов 60-140 байт в обе стороны. Но от сервера к клиенту пакеты идут чаще - раз в 10-12 мс, против 13-15 мс в обратную сторону.
В инете нашел инфу, что размер пакетов не должен превышать 250 байт, особенно при данных настройках rate и updaterate на сервере. Но как бы я не колдовал с этими кварами, размер пакетов остается приблизительно постоянным, а меняется лишь частота посылки этих пакетов.
Но вот у меня интересная штука наблюдается. Когда тебя на сервере убивают, то происходит некоторый лаг: враг в тебя выстрелил, ты в него, продолжаешь движение и стреляешь во врага, а потом резко хоп и ты оказываешься трупом и на том месте, где ты находился какое-то время назад. Притом во врага ни разу не попал. Похожее наблюдается при очень высоком пинге выше 150 мс. Вот только у игроков пинг не выше 10 мс и это при скорости инета в 100 мбит.
Начал разбираться в чем дело. В net_graph 2 при убийстве меня самый верхний график в виде 1-3 точки белого и зеленного цветов просто взлетает вверх. В инете нашел инфу, что верхний график - это показатель размера пакетов приходящих от сервера к клиенту. Снифером засек, что от сервера в это время приходит пакет размером от 280 до 1442 байта. Притом после такого огромного пакета в течении 60-200 мс от сервера вообще никакие пакеты не идут. Чем больше размер этого пакета, тем дольше после этого не идут пакеты. Притом появляются choke.


Это нормально так вообще или что-то тут не так с этими пакетами?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя mazdan
сообщение 13.5.2013, 10:13
Сообщение #2


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

наверное, превышение rate из-за кучи инфы типа спрайтов и т.п. (если еще добавить Ultimate gore или как там оно, то по идее будет еще заметнее)
Попробуйте sv_minrate поставить 30000 или 50000 и посмотрите как будет


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 13.5.2013, 10:43
Сообщение #3
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

если по лану то лучшим вариантом sv_lan 1
так как при нем можно не выставлять sv_minrate 50000
и чоков не будет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ravenyd123
сообщение 13.5.2013, 21:45
Сообщение #4


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

Цитата(mazdan @ 13.5.2013, 11:13) *
наверное, превышение rate из-за кучи инфы типа спрайтов и т.п. (если еще добавить Ultimate gore или как там оно, то по идее будет еще заметнее)
Попробуйте sv_minrate поставить 30000 или 50000 и посмотрите как будет

Нее, подобных плагинов нету. Кстати, да. При увеличении minrate этот лаг уменьшается. Но сам размер пакета в 1442 байта .... это разве нормально? Никто не мониторил пакеты CS сервера ?

Цитата(cs-portal @ 13.5.2013, 11:43) *
если по лану то лучшим вариантом sv_lan 1
так как при нем можно не выставлять sv_minrate 50000
и чоков не будет

А разве sv_lan еще существует? Если не ошибаюсь, то квар остался, но его функцию просто прикрыли из-за не надобности. Или у меня ложная информация ?

Отредактировал: ravenyd123, - 13.5.2013, 21:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 13.5.2013, 21:46
Сообщение #5


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

ravenyd123,
я думаю там просто много всякой инфы сразу идет. Пакет раздувает. может Crock тему увидит и подскажет =) Он в этом самый гуру. Но смысл такой вот по minrate. Ну и как знаете, наверное, Valve подняли планку до 100000 официальную для rate


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 13.5.2013, 22:20
Сообщение #6
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

sv_lan остался, я тестил. на предмет чока и рейтов = sv_lan 0 / 1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ravenyd123
сообщение 31.5.2013, 8:51
Сообщение #7


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

Цитата(mazdan @ 13.5.2013, 22:46) *
ravenyd123,
может Crock тему увидит и подскажет =) Он в этом самый гуру.

Его что-то в сети не видно уже оооочень давно. Наверное, семейными делами занялся ;-)

Цитата(cs-portal @ 13.5.2013, 23:20) *
sv_lan остался, я тестил. на предмет чока и рейтов = sv_lan 0 / 1

Хмм...надо будет погонять тогда этот квар.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ravenyd123
сообщение 7.6.2013, 11:56
Сообщение #8


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

Цитата(cs-portal @ 13.5.2013, 23:20) *
sv_lan остался, я тестил. на предмет чока и рейтов = sv_lan 0 / 1

Погонял....ничего не изменилось ( Я имею ввиду размер пакетов и подлагивание.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fast_inject
сообщение 26.7.2013, 9:51
Сообщение #9
Стаж: 14 лет

Сообщений: 48
Благодарностей: 13
Полезность: < 0

Мой сниффер показывает размер пакета от 48 до 1442,причём последний как правило поймать запросив status у сервера,смоделировав ситуацию,запустил серв с 18 ботами,зашёл на него сделал 10 запросов status с клиента,сниффер показал ровно 10 пакетов с длиной 1442 байта.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 26.7.2013, 9:59
Сообщение #10
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(fast_inject @ 26.7.2013, 11:51) *
размер пакета ... до 1442
Не забывайте, что большие пакеты фрагментируются - разбиваются на более маленькие.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fast_inject
сообщение 26.7.2013, 10:49
Сообщение #11
Стаж: 14 лет

Сообщений: 48
Благодарностей: 13
Полезность: < 0

Это понятно,в моём случае чистый Ethernet иделаьнее условий для hlds и cs не придумать,тем более если провайдер не химичит.
Увлечение задержки прохождение пакетов (где то на промежуточных узлах-маршрутизаторов) как правило это есть факт их фрагментации.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ravenyd123
сообщение 4.8.2013, 22:02
Сообщение #12


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

Цитата(Safety1st @ 26.7.2013, 9:59) *
Не забывайте, что большие пакеты фрагментируются - разбиваются на более маленькие.

Во! В общем я сделал так.
Быстренько сворганил КС сервер на компе у себя на работе. Захожу на него с своего домашнего. Запустил Wireshark там на работе и у себя дома. Мониторинг показалось, что после фрагментации пакета, ко мне приходят в неправильном порядке: сначала вторая часть, а потом первая.

В общем при убийстве меня, сервер отсылается слишком большие данные, которые не умещаются в одном пакете, приходится это все разбивать по 1442 байта (размер MTU). Получается, что первый пакет отсылается размером 1442 байта, а следом второй с остатками данных.
А вот приходят ко мне уже в таком порядке: сначала мелкий пакет с остатками, только потом идет основной пакет размером 1442 байта )

Но все равно это некоторые вещи не объясняет. Количество информации выше 1442 байта бывает крайне мало (далеко не при каждой смерти), а это подлагивание всегда.

При доскональном просмотре пакетов через снифер у клиента, обнаружил:
Первые 2 байта самого пакета - это номер пакета от 00 до ff, т.е. 256 номеров, идущие последовательно.
Следующие 3 пары байтов хз что это. Но по моему как-то со временем связано. 5-я пара байт это идентификационный номер входящего пакета от сервера, на который "отвечает" данный пакет. По сути используя номер данного пакета и номер пакета, на который отвечаем, CS определяет пинг и выводит его в net_graph.

Так вот, было еще замечено, что при пинге клиент-сервер равный 3-6 мс, сервер "отвечает" на пакет от клиента буквально через 1-5 мс т.е. как только на сервер пришел пакет от клиента, сервер почти сразу же отправляет клиенту ответный пакет. Это все видно на сниффере на самом сервере.
Но вот при "ответах" клиента на пакеты сервера происходит некоторая задержечка: Клиент отправляет ответный пакет через 18-22 мс после того как пришел пакет от сервера. За этого время (18-22 мс) клиент успевает еще отправить "ответный" пакет на предыдущий входящий пакет от сервера, и принять еще один входящий пакет от сервера, на который будет клиент отвечать в будущем. Надеюсь понятно все ))))))

Отредактировал: ravenyd123, - 4.8.2013, 22:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ravenyd123
сообщение 4.8.2013, 22:27
Сообщение #13


Стаж: 15 лет

Сообщений: 728
Благодарностей: 57
Полезность: 119

Из-за этого кажется какая-то неразбериха. Сервер очень быстро отвечает на пакеты, а клиент крайне медленно. Не согласованность получается. Нету симметрии во времени.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: