Как работает переадресация портов в больших видеоиграх с большим трафиком? - PullRequest
0 голосов
/ 12 июля 2019

Пожалуйста, рассмотрите следующий сценарий:

Предположим, что у двух соседей по комнате установлена ​​одна и та же игра.Ради этого вопроса давайте предположим, что игра является DoTA2.

Оба соседа по комнате подключены к одному и тому же маршрутизатору и, таким образом, имеют один и тот же публичный IP-адрес.(IP-адрес маршрутизатора)

Теперь давайте предположим, что кто-то снаружи, то есть общедоступный Интернет вне маршрутизатора, хочет подключиться к соседу по комнате1, тогда маршрутизатор будет иметь простую переадресацию портов в рамках правила NAT, которое может пойтикак следует,

Если запрос поступает извне через порт ABC (игровой порт), перенаправьте его на roommate1.

Теперь, если мы предположим, что roommate2 также онлайн в игре, а другойобщедоступный компьютер хочет подключиться к ним, тогда как будет работать переадресация портов?

Как маршрутизатор узнает, на какой частный компьютер (сосед по комнате) будет перенаправлен запрос на подключение?

Пожалуйста, не давайтенапример, в DoTA выделено несколько портов или любой ответ, относящийся к конкретной игре, использование DoTA является лишь примером.

Можно даже рассмотреть сценарий, когда два частных компьютера используют простой HTTP-сервер на порту № 80.как внешний компьютер узнает, к какому из них подключиться?

У меня есть гугл DMZ и порт fперенаправление, но не совсем понятно решение.

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Короче, НЕТ невозможно.Вы можете использовать только NAT с 1 общедоступного адреса на внутренний IP-адрес на порту X.

В большинстве случаев компании делают это, но у них есть 2 или 3 общедоступных адреса, тогда вы можете сопоставить их с другим внутренним IP-адресом.

Публичный IP 1> Внутренний IP: порт
Публичный IP 2> Внутренний IP: порт

Вы можете сопоставить с внешнего IP несколько внутренних IP-адресов, но так как вы используете одну и ту же услугу (игру)) они вероятно используют один и тот же порт или порты.

0 голосов
/ 12 июля 2019

Грубо говорить нам о том, какие ответы мы можем дать, особенно если вы сами задали вопрос не по теме.

Что касается ответа на ваш вопрос, переадресация портов осуществляется на основесочетание частного IP и порта;roomate1 и roommate2 имеют разные частные IP-адреса, но используют один и тот же порт, и на вашем маршрутизаторе (если он универсальный) можно использовать только одно правило переадресации в любой точке.

Возможное решение - использовать прокси-сервер, такой как HAProxy, после маршрутизатора на стороне частной сети и использовать политику на основе ассоциации TCP для пересылки пакетов в роуминг.

...