Вопрос сетевикам

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Вопрос сетевикам

Сообщение tasko »

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

Два подростка играют в игру, хотят сыграть между собой, но без сервера. В настройках игры можно ввести TCP/IP противника. Есть ли возможность связаться по TCP/IP напрямую? Каждый знает свои настройки, то есть IP Address, Default gateway и т.д. Возможно ли это, и если можно, то как? Короче, можно ли выстроить цепочку:
мой комп - мой домен верхнего уровня - его домен верхнего уровня - его комп?

Я к сожалению в сетях того, слабо. Знаю только про форматы IP-адреса, DNS-запросы, домены разных уровней, формат IP-датаграммы и стек протоколов. Ну, короче, на уровне Круглинского :)
А дальше - ни-ни. Ежели кто скинет ссылочку, где можно почитать кратенько, на нескольких страничках и полезно про это, тому большое спасибо. А может и лекцию кто прочтет?
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Re: Вопрос сетевикам

Сообщение ajkj3em »

tasko писал(а):Сын вдруг пристал с вопросом, а как сделать не знаю.

Два подростка играют в игру, хотят сыграть между собой, но без сервера. В настройках игры можно ввести TCP/IP противника. Есть ли возможность связаться по TCP/IP напрямую? Каждый знает свои настройки, то есть IP Address, Default gateway и т.д. Возможно ли это, и если можно, то как? Короче, можно ли выстроить цепочку:
мой комп - мой домен верхнего уровня - его домен верхнего уровня - его комп?

Я к сожалению в сетях того, слабо. Знаю только про форматы IP-адреса, DNS-запросы, домены разных уровней, формат IP-датаграммы и стек протоколов. Ну, короче, на уровне Круглинского :)
А дальше - ни-ни. Ежели кто скинет ссылочку, где можно почитать кратенько, на нескольких страничках и полезно про это, тому большое спасибо. А может и лекцию кто прочтет?
простой ответ - в 99.9% случаев нельзя.

по-крайней мере нельзя подменить cli-srv-cli просто cli-cli,
иногда можно поставить локальный сервер на один из cli,
но его еще найти надо
XMan
Частый Гость
Сообщения: 16
Зарегистрирован: 05 июл 2003, 09:23

Сообщение XMan »

Правильный ответ - недостаточно информации :)

1. Поддерживает ли игрушка режим сервера или она может являться только клиентом куда-то ? Если не поддерживает, то не полкчится.

2. Как они соединены между собой или с сетью ?

а) если они соединены шнурком между собой, то достаточно дать им IP адреса из одной подсети. Например, 10.0.0.1 и 10.0.0.2;

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

Стоит учесть, что если соединение dial-up, то с большой вероятностью можно сказать, что адреса будут непостоянные. То есть, с каждым соединения клиент может получать другой адрес. В этом случае задача усложняется тем, что после соединения игроку-серверу прийдется выяснять свой адрес и передавать его игроку-клиенту.
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Сообщение tasko »

XMan писал(а):Правильный ответ - недостаточно информации :)
Ничего страшного. Сейчас закидаем информацией :)

XMan писал(а):1. Поддерживает ли игрушка режим сервера или она может являться только клиентом куда-то ? Если не поддерживает, то не полкчится.
Естественно, в игрушке есть 2 разновидности: подключиться к игре и ожидать игрока. Очевидно, что в первом случае игра выступает как клиент, а во втором - как сервер. Причем в первом случае программа сразу просит указать IP-адрес противника.
XMan писал(а): а) если они соединены шнурком между собой, то достаточно дать им IP адреса из одной подсети. Например, 10.0.0.1 и 10.0.0.2;
Если было так просто, я бы и не спрашивал. Указал бы адрес противника, и все. В том то и дело, что каждый сидит у себя дома, и у каждого есть только выход в Интернет.
XMan писал(а): б) если они соединены через провайдеров, то какие адреса дают им провы - реальные или локальные ? Если хотя бы одному из них дается реальный адрес, то в соединиться можно указав тот самый адрес и сделав ту машину сервером. Если им даются локальные адреса, то скорее всего нельзя. Разве что когда они на одном провайдере работают и он не закрывает клиентов друг от друга.
Реальный - это выделенный IP-адрес? Вряд ли. Скорее всего у обоих локальный адрес. В том то и дело, у каждого есть только стандартный набор:
IP Address
Subnet Mask
DefaultGateway
DHCP Server
DNS Server

Кстати, у меня стоит Фаирволл, и в логах постоянно видно, что каждый день кто-то пытается вломиться ко мне. Значит, провайдер разрешает доступ к отдельным клиентам. А значит ко мне может ткнуться кто угодно, в том числе и противник с игрушкой.
XMan писал(а):Стоит учесть, что если соединение dial-up, то с большой вероятностью можно сказать, что адреса будут непостоянные. То есть, с каждым соединения клиент может получать другой адрес. В этом случае задача усложняется тем, что после соединения игроку-серверу прийдется выяснять свой адрес и передавать его игроку-клиенту.
В пределах одной сессии настройки сохраняются. Так что тут никаких проблем. Вышел в инет, посмотрел свои настройки, сообщил противнику по телефону, и вперед! :)


И все-таки, кто-нибудь знает хорошую ссылочку, где про все это можно прочитать достаточно быстро и качественно, не перелопачивая тысячи страниц текста?
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

Блин, народ, чего вы мудрите-то?
Похоже что по крайней мере один (а скорее всего оба) из игроков за NATom сидит.
Вот и не видят они друг друга. Решать надо в зависимости от того кто NAT делает.

Всё IMHO, BTW, пгораммист я ...
XMan
Частый Гость
Сообщения: 16
Зарегистрирован: 05 июл 2003, 09:23

Сообщение XMan »

to tasko:

> Реальный - это выделенный IP-адрес?

Нет. Это адрес, который не входит в локальные сети - 192.168.x.x, 172.чего-то_там и 10.x.x.x. Кажись именно они выданы для локальных сетей - давно не приходилось с этим, всё забыл :( Все остальные адреса распределяются централизованно. То есть, прову выдается пул адресов, которые он может использовать для себя или своих клиентов.

У нас (Донецк, Украина) обычно диалапщикам раздаются реальные адреса.

IP Address - это понятно :)
Subnet Mask - это тоже.
DefaultGateway - естественно - без этого можно ходить только внутри своей подсети, определяемой "Subnet Mask"
DNS Server - а как иначе узнать, что "www.com" имеет адрес 209.132.205.227 ? :)

DHCP Server - а это странно. Обычно диалапщикам IP-адрес выдается не DHCP-сервером, а ppp-сервером. Хотя может в Win-серверах так. У нас поголовно у провов стоят Linux и *BSD :)


Ссылки, увы, не дам "из-за отсутствия таковой".

---

to Marmot:

Мало ли чего в жизни бывает. Авось заработает. Ты-то, как программист, должен это знать. Не зря же анекдот имеется, мол, "Давайте выйдем и зйдем - авось заработает" :)
Ответить