Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.  
Автор Сообщение

0
Сообщение Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
Для начала, если кому интересно, исходные данные
Местоположение: Омск, Россия
Интернет-провайдер: Вебстрим
Проблемы с пингом: всегда
ОС: Linux thrashhome 2.6.29-gentoo-r5 #2 SMP Tue Aug 18 18:18:08 OMSST i686 AMD Athlon(tm) 7750 Dual-Core Processor AuthenticAMD GNU/Linux

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

Имею пинг в игре по кварцу 30.12.2009 в 11:37 дня 300-600мс, что меня совсем не устраивает. Вечером он еще больше ухудшится из-за местных школьников, качающих порно с торрентов.

Попытка решения проблемы номер раз:
Т.к. я не использую ОС Windows, то не могу попробовать установить фикс для реестра, поскольку у меня он отсутствует )
Идём другим простым путём.
1) Узнаём адрес сервера, на котором играем
а) Коннектимся к вову, пишем
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3700 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3800 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.1:35820 62.67.45.53:3724 ESTABLISHED
tcp 0 0 192.168.1.1:41021 90.189.192.121:5223 ESTABLISHED
tcp 0 0 192.168.1.1:35819 62.67.45.53:3724 ESTABLISHED
tcp 0 0 127.0.0.1:3800 192.168.1.1:35819 ESTABLISHED

б) Нас интересуют соединения с портом 3724.
в) Очевидно, 62.67.45.53:3724
2) Создаём правило для iptables
iptables -t nat -A OUTPUT -p tcp -d адрес_серва --dport 3724 -m owner --uid=ваше_имя_пользователя_в_системе -j REDIRECT --to-ports 3700

3) Создаём сервер socat
socat -- TCP4-LISTEN:3700,fork,reuseaddr,su=nobody TCP4:62.67.45.53:3724,nodelay,tos=0xd0

tos=0xd0, судя по rfc1349, "1000 -- minimize delay".
4) Запускаем socat, заходим в игру, смотрим tcpdump и пинг.
14:49:52.098454 IP (tos 0xd0, ttl 64, id 184, offset 0, flags [DF], proto TCP (6), length 52) 192.168.1.1.35820 > 62.67.45.53.blizwow: ., cksum 0xbc96 (correct), 218:218(0) ack 55204 win 1002
14:49:52.352966 IP (tos 0xc8, ttl 44, id 54191, offset 0, flags [DF], proto TCP (6), length 117) 62.67.45.53.blizwow > 192.168.1.1.35820: P 55204:55269(65) ack 218 win 121
14:49:52.353181 IP (tos 0xd0, ttl 64, id 185, offset 0, flags [DF], proto TCP (6), length 52) 192.168.1.1.35820 > 62.67.45.53.blizwow: ., cksum 0xba57 (correct), 218:218(0) ack 55269 win 1002

Видно, что tos в исходящих пакетах = 0xd0, а во входящих (омг) 0xc8.
0xc8 = 11001000, по рфц:
первые 3 бита не имеют значение, следующие 4 бита
tos = 0100
последний бит = 0.


Омг, tos = "0100 -- maximize throughput", где-то на пути ко мне стоит шейпер, который цуко оптимизирует канал для порноторрентов!

Теперь вопросы к обществу. Я неправ в своих выводах? Что можно сделать в такой ситуации? Есть мысли по прокидывания трафика вова через udp пакеты с помощью чьей-нибудь vds, находящейся ближе к серверам вова (например, через openvpn). Или стоит звонить провайдеру и сразу материться на него?


30 дек 2009, 11:57
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
wile писал(а):

tos=0xd0, судя по rfc1349, "1000 -- minimize delay".

1000 = 8 = 0x08.

Упс. Есть сдвиг на один бит. 0xd0 - нормально. Почему не 0xf0?


30 дек 2009, 13:53
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
Minagushi писал(а):

Красноглазик.
Цитата:
Местоположение: Омск, Россия

Ты себе представляешь трассу до Европы из Омска? Тут может быть виноват как и твой провайдер, так и провайдер твоего провайдера у которого он покупает трафик, что скорее всего. Меняй провайдера. Винда, Линукс имхо пофигу вообще если железо нормальное, а оно у тебя нормальное, так что срать. Что под виндой что под линями.

Да, я забыл показать трассировку.
traceroute to 62.67.45.53 (62.67.45.53), 30 hops max, 40 byte packets
1 192.168.1.254 (192.168.1.254) 1.316 ms 1.712 ms 2.169 ms
2 * * *
3 ge-4-1-3.osk-dr1.ncc.sibirtelecom.ru (213.228.118.61) 37.479 ms 39.193 ms 41.292 ms
4 ge-0-0-0.osk-bsr1.ncc.sibirtelecom.ru (213.228.118.42) 41.601 ms 42.759 ms ge-1-0-0.osk-bsr1.ncc.sibirtelecom.ru (213.228.118.46) 44.477 ms
5 omk15.transtelecom.net (217.150.46.170) 46.015 ms 46.276 ms 48.202 ms
6 xe-4-2-0-xcr1.amd.cw.net (195.2.21.5) 140.914 ms 124.487 ms 126.271 ms
7 xe-4-2-0-xcr1.amd.cw.net (195.2.21.5) 129.201 ms 129.456 ms 129.689 ms
8 xe-0-1-0.xcr1.lsw.cw.net (195.2.25.101) 134.614 ms xe-4-1-0.xcr1.lsw.cw.net (195.2.25.93) 132.334 ms xe-0-2-0.xcr1.lsw.cw.net (195.2.25.105) 138.932 ms
9 195.50.118.229 (195.50.118.229) 141.154 ms 143.253 ms 144.818 ms
10 ae-34-52.ebr2.London1.Level3.net (4.69.139.97) 146.896 ms 127.118 ms 128.018 ms
11 ae-2-2.ebr2.Amsterdam1.Level3.net (4.69.132.134) 134.890 ms 135.580 ms 137.493 ms
12 ae-1-100.ebr1.Amsterdam1.Level3.net (4.69.141.169) 139.361 ms 136.960 ms 137.109 ms
13 ae-2-2.ebr2.Dusseldorf1.Level3.net (4.69.133.90) 136.636 ms 135.921 ms 137.162 ms
14 ae-21-52.car1.Dusseldorf1.Level3.net (4.69.139.34) 134.682 ms 136.977 ms 135.659 ms

Как видно из трассировки, пинг должен быть около 160-200 (причем сейчас уже близится вечер). А в игре сейчас 400.

Мне доступны три провайдера, у других ситуация ещё хуже - дисконнекты, пинг в вове до 2000мс, падение сети и т.д.

ps: А на винду не вернусь. Не нужны мне эти зависоны, вирусы кривые платные проги и ограниченный системный инструментарий.

Добавлено спустя 6 минут 33 секунды:
newb писал(а):

wile писал(а):
tos=0xd0, судя по rfc1349, "1000 -- minimize delay".

1000 = 8 = 0x08.

Упс. Есть сдвиг на один бит. 0xd0 - нормально. Почему не 0xf0?

С этим я прогнал ) Взял первые 3 бита от того, что ко мне приходит (0xc8 = 11001000), когда экспериментировал, изменил tos, и получилось 0xd0. И забыл зачем. Раньше было 0x10.


30 дек 2009, 13:56
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
Похоже на шейпер. Просто так ToS не переписывают.

По трейсу - есть два скачка:

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

Второй - #6 - переход от твоего провайдеру к провайдеру верхнего уровня, обусловлен загрузкой двух общающихся узлов. Цифры большие. 80ms это очень много. Один из узлов перегружен.

В целом, хотя между тобой и Близзардом и больше чем один провайдер, ToS переписывает скорее всего именно твой. Это первая проблема. Вторая проблема - скачок на 80ms выше.

Звони, разбирайся. Попытка - не пытка. Удачи и с Новым Годом!

(И, да, установка Windows тут не поможет.)


30 дек 2009, 14:16
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
Kari344 писал(а):

Генту наверное ставил, чтобы перед друзьями понтонуться?

Нет, перед друзьями я понтовался FreeBSD 3.6 в десятом классе, когда держал ноду в фидонете оО

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

Но вопрос топика-то не в генту, и не в том, что линукс лучше/хуже винды.

Добавлено спустя 2 минуты 52 секунды:
newb писал(а):

Похоже на шейпер. Просто так ToS не переписывают.
Второй - #6 - переход от твоего провайдеру к провайдеру верхнего уровня, обусловлен загрузкой двух общающихся узлов. Цифры большие. 80ms это очень много. Один из узлов перегружен.

Гугление дало знание, что узел 5 находится в Сибири, а узел 6 в Европе. Поэтому такая цифра тоже вполне нормальная.

newb писал(а):

Звони, разбирайся. Попытка - не пытка. Удачи и с Новым Годом!
(И, да, установка Windows тут не поможет.)

Спасибо )


30 дек 2009, 14:19
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
uncle_fedor писал(а):

btw, в wine есть аля реестр из виндуза, попробуй там может фикс прокатит.

Фикс выключает алгоритм Нагла (Nagle). В примере выше это сделано параметром "nodelay" в вызове socat.

Последнее замечание:

Технически, "сервер" общающийся с "клиентом" по TCP (понятия сервер и клиент во многих случаях сильно размыты) не обязан использовать тот же самый ToS, который использует клиент. Больше того, он может использовать разные ToS'ы для разных запросов в пределах одного соединения. Таким образом, переписывание ToS может производиться и Близзардовским сервером. На практике, однако, это делается редко. Переписывают ли ToS сервера WoW я не знаю. Но вот провайдер переписывать ToS не должен ни при каких обстоятельствах.


30 дек 2009, 14:23
Профиль

0
Сообщение Re: Плохой пинг в вове. Linux. Виндовс крабам читать не стоит.
Minagushi писал(а):

Цитата:
ps: А на винду не вернусь. Не нужны мне эти зависоны, вирусы кривые платные проги и ограниченный системный инструментарий.

1. Нормально пересобери компьютер.
---
5. Поинтересуйся вопросом, нормально настрой винду и проги.
Ты не поверишь какой сказочной тебе покажется эта операционка когда ты приложишь к этому хоть чуть желания и аккуратности =)

Мне и так сказочно, и всё работает.


30 дек 2009, 14:24
Профиль
Начать новую тему Ответить на тему


Перейти:  

На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.
Рейтинг@Mail.ru