ПрограммированиеФорумСеть

Не могу пробить NAT, UDP создает канал (7 стр)

Страницы: 1 2 3 4 5 6 7
#90
21:17, 14 дек 2017

Сейчас в большинстве случаев до _квартиры_ доходит занатовый адрес, и в каждой квартире по роутеру, сужу по количеству wifi точек соседей, которые, гадство, их не отключают... Чему тут удивляться? Жду еще комментарий Dampire по поводу поиска локальных адресов роутеров...

#91
21:18, 14 дек 2017

А трассировка пути - это совсем черная магия?

#92
21:23, 14 дек 2017

Ramm
> А трассировка пути - это совсем черная магия?
При проходе через роутер в пакет дописывается информация о пути, которым он шел. Весь путь можно проследить, по идее, если его специально не стирали аннонимайзерами, и не подделывали. Но как это сделать не знаю, через сокеты оно не доступно.

#93
0:42, 15 дек 2017

Ramm
> А трассировка пути - это совсем черная магия?

tracert трассирует так: посылает пакеты до цели с возрастающим TTL, 1, 2, 3, ..., пакет соответственно сдыхает сначала на роутере, потом на шлюзе роутера, потом далее по цепочке до цели. Вся эта цепочка по очереди посылает обратно сообщение, что время жизни истекло, получите пакет обратно. Ну и адрес свой оставляют. Делается это кажись через ICMP. Вообще могут быть ситуации когда это не поможет. Например, если у провайдера 2 локальные сетки между собой не связанные, сидят за NAT'ом у которого NAT Loopback не включен, ну и соответственно 2 клиента, один в первой, другой во второй, Loopback это то самое которое отвечает на то отвечает ли NAT на запросы из внутренней сети или нет. В этом случае вообще ничего походу не сделаешь) Но думаю, что это нечастая ситуация в реале.

Еще во всяких игровых серверах, на некоторых клиентов вешают функции посредника. Тогда получается трафик будет идти не через сервер нагружая его, а через одного\нескольких игроков, которых тоже можно подбирать по значению пинга, мол у игрока 1 пинг до игрока 2 и 3 хороший, а игроки 2 и 3 не могут друг до друга достучаться, значит будешь им посредником.

#94
12:00, 15 дек 2017

Ramm
Локальный адрес в сети провайдера узнавать тухлая затея, порты то мапиться могут как угодно. Но ты сам понимаешь, что это невероятно? В одной квартире - да легко, тут тебе надо знать только локальный адрес и локальный порт. Плюс учитывай, что невозможность игры за одним натом это особенность настройки. За каким хером ты сам придумываешь невероятные сценарии и начинаешь вайн? То у тебя порты все рандомятся, то у тебя у всех симметрик, теперь вот все сидят за одним натом.

#95
14:47, 15 дек 2017

Dampire
> За каким хером ты сам придумываешь невероятные сценарии и начинаешь вайн?
Хз, но у меня этот невероятный сценарий прям передо мной сейчас работает)))
Ок, план такой:
1. Получаем на сервере пакеты от клиентов, узнаем их адреса и порты, отправляем им, они начинают совершать фрикции, слать пакеты друг другу в надежде пробиться...
2. Если у них это не удалось, они уведомляют сервер, типа 20 секунд молчание, он проверяет адрес, если он не совпадает - пускаем весь их трафик через сервер, т.к. NAT не пробит и нихрена не вышло. Если совпадает - просим их прислать локальные адреса и забиндинные на прослушку порты. Отправляем им полученную инфу.
3. Клиенты пробуют подключиться по локальным адресам, если выходит - повезло, нет - пускаем весь трафик через сервер.
Так? Все правильно?

#96
16:07, 15 дек 2017

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

#97
16:26, 15 дек 2017

Ramm
> Хз, но у меня этот невероятный сценарий прям передо мной сейчас работает)))
Этот невероятный сценарий перед тобой потому что у тебя отладка идет, это раз. Во вторых это решается локальными адресами (которые можно сразу хранить вместе с внешними и отсылать их тоже парой, пусть клиенты сами разбираются к чему подключаться). А чтобы у тебя два клиента сидели за одним провайдерским натом (но за разным домашним) это как раз из области уличной магии.

Что касается сервера доставки - достаточно подменить адрес проблемного клиента адресом сервера доставки. Весь трафик гонять через него не нужно.

#98
17:23, 15 дек 2017

Zab
Да, я тоже об этом думал. Ну и если что-то хоть немного получится - увеличить кол-во серверов...
Dampire
Да, точно, только для проблемных клиентов, а те, кто смогут подключиться напрямую - будут слать напрямую.
Уфф, блин, всем спасибо большое, более-менее начал шарить в теме.

#99
17:25, 15 дек 2017

CoderInTank
> Тогда получается трафик будет идти не через сервер нагружая его, а через
> одного\нескольких игроков, которых тоже можно подбирать по значению пинга, мол
> у игрока 1 пинг до игрока 2 и 3 хороший, а игроки 2 и 3 не могут друг до друга
> достучаться, значит будешь им посредником.
И если кто-нибудь уйдет - у тех, кто к ним подключен все ляжет)

#100
18:21, 15 дек 2017

Ну почти так работает don't starve together. Когда выходит "хозяин" сервера у остальных игра заканчивается.

#101
18:29, 15 дек 2017

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

#102
23:49, 15 дек 2017

Ramm
> И если кто-нибудь уйдет - у тех, кто к ним подключен все ляжет)

ну вот в Awesomenawts допустим иногда возникает прямо посреди игры на пару секунд сообщение "Подождите, идет смена хоста\оптимизация подключений".  Вполне себе нормальная ситуация и не раздражает так как понимаешь, что сейчас то получше должно стать) Но и это убрать просто введя запасного посредника который если что налету подхватит.

#103
11:42, 13 янв 2018

Ребят, я тут тему создал по поводу внутреннего буфера сокета
http://www.gamedev.ru/code/forum/?id=232860#m14
Можете написать свои мысли по этому поводу?=)

Прошло более 3 лет
#104
3:54, 11 янв 2022

У меня (Address) restricted cone nat - узнал через приложение в play market (stun for NAT)
Возможно ли пробить его имея 1.тачку с Bungecord(белый аипи)
2.тачка с сервером Minecraft (серый аипи)
Вторая тачка находится за NAT, двойной ли он хз,т.к не знаю других методов проверки какой NAT, провайдер Московский.

Страницы: 1 2 3 4 5 6 7
ПрограммированиеФорумСеть

Тема в архиве.