К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Обмен данными между клиентами без общего сервера

Гость
0 - 01.05.2014 - 10:25
Подскажите, реально ли сделать следующую технологию?

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

Необходимо, чтобы клиентские части программы "видели" друг друга в сети и могли обмениваться сообщениями без общего сервера. То есть клиенты не посылают некую информацию на сервер, а обмениваются сообщениями напрямую друг с другом.

Достижима ли такая технология или сервер обязательно нужен?



Гость
1 - 01.05.2014 - 10:49
0-Gorky > Технология недостижима. Объясняю почему:
В интернете адресация осуществляется по IP адресам. При этом Адреса делятся на:
"Серые" и "Белые", Статичные и динамические. Всего адресов около 4 миллиардов. "Серый" адрес - когда провайдер имеет 1 IP-адрес на всех, а NAT на сервере определяет что и кому грузить.
"Белый адрес" - адрес устройства напрямую подключенного к сети.
Статичный адрес - узел в сети имеет постоянный адрес.
Динамический - адрес узла постоянно меняется.
Все "мобильные" абоненты и больше половины "стационарных" имеют динамические "серые" адреса т.е. без "управляющего" сервера они видеть друг-друга не могут в принципе. В целом сервер нужен только на установку соединения, далее клиенты могут работать без него (пример - торренты).

Подробнее - регистрируйся и задавай вопрос на http://forum.sodpd.ru/

Мы его недавно открыли, так что пока там всего пара посетителей, но думаю это очень скоро измениться.
Гость
2 - 01.05.2014 - 11:11
Понятно. Но вот вы сами упомянули торренты, P2P. А нет ли возможности доработать эту технологию таким образом, чтобы можно было без сервера устанавливать соединение между клиентами.

p.s. Сайт по ссылке не открывается.
Гость
3 - 01.05.2014 - 11:24
1-КК СПД > Вы сами же подтвердили что "Технология ДОСТИЖИМА", ЕСЛИ - У всех клиентов Статичный IP,
ИЛИ Все клиенты могут определить свой Динамический IP.

Только ПРОЩЕ это сделать через Сервер - который сам определит IP + Авторизует пользователя!
Гость
4 - 01.05.2014 - 11:45
3) а в сторону каких технологий стоит смотреть?
Гость
5 - 01.05.2014 - 19:12
2-Gorky > Торренты имеют управляющие сервера. Два клиента "дозваниваются" до одного сервера, он их "сводит" и отключается - обмен данными идет между клиентами напрямую.
3-AlexIT > И если у них белые IP-адреса. Если адрес "серый", то стадик/динамик недостижим. Белый адрес - большой дефицит, не более 30%. Нафига делать то, что смогут использовать только 30% населения, а при перекрестном использовании - менее 10 %. Тем более опрашивать 4 миллиарда адресов...

4-Gorky >Опиши, что нужно и получишь внятные советы.
Гость
6 - 01.05.2014 - 19:13
Сайт (вернее форум) открывается.
Гость
7 - 01.05.2014 - 19:46
5) есть одна идея, пока что не могу озвучить.
6) теперь да, открывается.
Гость
8 - 01.05.2014 - 21:08
7-Gorky > Хозяин-барин. Задай на нашем форуме вопрос, там и объяснят.
Гость
9 - 02.05.2014 - 08:50
btsync
Гость
10 - 02.05.2014 - 12:20
9-Суслик > Уже писал об этой технологии в 5 посте.
Гость
11 - 02.05.2014 - 14:14
11-Сайты > аж завис.
Браузер - средство отображения hypertext документов.

Уже второму говорю, что для peer-to-peer сети требуется сервер. На первом этапе он требуется обязательно т.к. "сканирование" глобальной сети занимает недели/месяцы. В локалке - да возможно и реализовано сотнями способов.
Гость
12 - 02.05.2014 - 19:42
Задача может быть решена только после человеческой постановки
Гость
13 - 02.05.2014 - 20:30
Как вы понимаете, безсерверная технология нужна для того, чтобы этот сервер не могли забанить или прикрыть.
Гость
14 - 02.05.2014 - 22:32
В любом случае сервер нужен, но только "для запала", когда будут несколько десятков клиентов с белым IP, то вопрос сервера решается сам по себе.

Кстати, "забанить или прикрыть" немного сложнее чем думают в Роскомнадзоре...
Гость
15 - 03.05.2014 - 01:50
14-Gorky >это делается кластером, списком обновляемым, рассылкой списка, етц.. Но для старта соединения, чтобы сокет открыть через наты и постучаться с известный белый айпи, нужно что то серверное.
Гость
16 - 03.05.2014 - 10:13
0-Gorky >можно... начните изучение с луковой маршрутизации, это очень близко к тому, что вы хотите сделать
в принципе можно даже обойтись без серверов, но это сильно нагрузит созданную распределенную базу... информация (контент) ведь должна где-то храниться, значит если нет серверов, то на локальных компьютерах пользователя, но последние не всегда включены не только в сеть, но и в электророзетку, поэтому придется одну и ту же информацию дублировать на неограниченное количество пользовательских конечных устройств
в итоге вывод примерно такой - обмен инфой можно устроить без проблем, а вот ее хранение и безпроблемный доступ к ней - это будет проблемой
кстати, уже есть подобная сеть и даже браузер с общим названием "тор", но тормозит страшно

п.с. только боюсь вам не дадут это масштабировать в массы, ибо амеры потеряют контроль на тырнетом, но если решитесь, то обращайтесь - поможем с программингом если чо))
Гость
17 - 03.05.2014 - 12:51
17) ясно, понятно )
Гость
18 - 04.05.2014 - 11:31
17-Boltas > Раз уж разговор зашел за ТОР - это p2p сеть, которая на раннем этапе своего развития... Так же имела серверную часть. Десять раз уже об этом говорю - для старта сети нужны сервера, а при достижении критической массы сеть станет самодостаточной.

Простая математика: в сети порядка 4 млрд адресов, при сканировании в 10 потоков на уровне эхо-ответа это 0,1 сек т.е. 100 адресов/сек максимум. Общее время сканирования 40 млн. сек., чуть более 11 тысяч часов, 462 дня.

Можно написать сканер на С и довести сканирование до 1000 адресов/сек на хорошем канале. Поиск сети "всего-то" за полтора месяца...

Сотня "белых" IP-клиентов доведет подключение нового клиента до 6 часов при сканировании, а p2p протокол обеспечит он-лайн режим для всех подключенных.
Гость
19 - 06.05.2014 - 19:56
20-Сайты > учи матчасть. Школьную информатику, раздел "принципы построения компьютерных сетей" и "протокол TCP/IP" я пересказывать не намерен.

Хотя от себя добавлю, что такие "профи" кроме проблем и пустозвонства ничего не делают.
Гость
20 - 07.05.2014 - 01:18
19-КК СПД >простой вопрос - а на х.я их все сканировать?
Гость
21 - 07.05.2014 - 20:28
22-Boltas > читаем внимательно топикстартера:

Подскажите, реально ли сделать следующую технологию?

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

Необходимо, чтобы клиентские части программы "видели" друг друга в сети и могли обмениваться сообщениями без общего сервера. То есть клиенты не посылают некую информацию на сервер, а обмениваются сообщениями напрямую друг с другом.

Достижима ли такая технология или сервер обязательно нужен?

т.е. компьютеры, подключенные к Интернету должны находить другие компьютеры с этой программой. Поскольку адреса других компов, их количество и наличие в сети неизвестны, то единственный вариант - перебор по эхе на заранее известном порту.

23-Сайты > UDP можно для бродкаста использовать (пишу всему свету), он не устанавливает соединение, но при сканировании нужно именно эху получить - открыт порт или нет (есть ли программа). Сказал же - учи матчасть!.

При этом эхо-пакеты будут резать на NAT серверах.

Торренты для установки соединения используют коннект-сервера, но "сводит" два подключения в одно и отпускает т.е. через него трафик не идет, здесь серверов нет, поэтому нужно:
1. На первом этапе (до формирования устойчивой сети) иметь сервера.
или
2. Каждому клиенту сканировать весь интернет в поисках "братьев".

Читайте все сообщения внимательно, уже трижды все переписывалось. И учите матчасть, хотя бы на уровне школьной информатики.
Гость
22 - 08.05.2014 - 00:14
Цитата:
Сообщение от КК СПД Посмотреть сообщение
Подскажите, реально ли сделать следующую технологию? На компьютеры в разных странах и городах (т.е. не связанные локальной сетью) устанавливается клиентская часть программы. Этот клиент может быть даже в виде плагина для браузера, т.е. легковесный. Необходимо, чтобы клиентские части программы "видели" друг друга в сети и могли обмениваться сообщениями без общего сервера. То есть клиенты не посылают некую информацию на сервер, а обмениваются сообщениями напрямую друг с другом. Достижима ли такая технология или сервер обязательно нужен?
достижима, очень близкий пример - это обычный скайп

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

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

возвращаемся к исходной задаче
Цитата:
Сообщение от КК СПД Посмотреть сообщение
Необходимо, чтобы клиентские части программы "видели" друг друга в сети и могли обмениваться сообщениями без общего сервера.
что в ней я вижу основное?
1. люди уже знакомы или же новые знакомства происходят через уже существующие контакты, по аналогии с тривиальными соц сетями, в которых мы видим лишь контент друзей, друзей друзей и т.д., ну еще конечно поиск, но это вообще отдельная тема в этой теме
2. это реальная возможность уйти от назойливой рекламы и из-под контроля различных фискальных структур, ведь если нет центрального сервера, то не нужен и домен
а один из методов оповещения о своем присутствии в сети - обычный пинг при входе в сеть на все компьютеры своих же контактов, всё более ничего не нужно, люди увидят вас и если вы им нужны сейчас, то выйдут с вами на связь... обратный пинг наоборот скажет вам, кто именно сейчас в сети есть из контактов
ну и конечно в зависимости от настроек - можете сразу получать актуальный контент от друзей или например только по запросу, это уже детали

если хотите, давайте попробуем создать такую сеть, по сути ничего сложного, вы верно сказали - достаточно написать простенький плагин в браузер
Гость
23 - 10.05.2014 - 14:02
25-Boltas > Поехали по пунктам:
1. Скайп, ка и любой VoIP клиент имеет сервера. Даже не один сервер, а тут топикстартер говорит именно о том, что нужно исключить сервер.
2. Нужно не сканировать - компьютеры должны видеть друг друга, чтобы обмениваться информацией. Для этого открывается порт который дает нужный эхо-ответ на вопрос. На общебытовом - нужно узнать где в многоэтажке живет Вася:
1. Стучимся в первую дверь - Ты Вася? -Нет.
2. Стучимся во вторую дверь - Ты Вася? -Нет.
3. Стучимся в третью дверь - Ты Вася? -Нет.
4. Стучимся в четвертую дверь - Ты Вася? -Да.

Это простой перебор. Когда сеть сформируется (по аналогии с торрентами) этот диалог будет выглядеть так:
1. Стучимся в первую дверь - Ты Вася? -Нет. - А где он живет? - Не знаю.
2. Стучимся во вторую дверь - Ты Вася? -Нет. - А где он живет? - В 4-й квартире.
3. Стучимся в четвертую дверь - Ты Вася? -Да.

3. Самое главное - работа сети огда она уже сформирована естественно будет работать на BT протоколе, который обладает именно теми особенностями и принципами которые Вы описали. Тут обсуждается старт проекта, а не когда в нем будут over9000 пользователей. А на старте без сервера нельзя.
Гость
24 - 10.05.2014 - 20:20
26, вы читать умеете, а понимать прочитаное?))
зачем мне пересказ моих мыслей в вашей интерпретации?

1. скайп я привел прежде всего как пример хранения информации, она хранится на локальных компьютерах пользователей
2. нет, достаточно знать кто в какой квартире живет и адресно отправить послание непосредственно Васе, а не бегать по этажам с разными вопросами, а лучше пинг для сначала послать для проверки - дома ли тот
3. можно сразу без сервера стартовать, если у всех первопроходцев будет статический ip и заранее открыт какой-нить один из портов
когда же пользователей будет в избытке, то сеть может работать и на динамических ip-адресах
Гость
25 - 10.05.2014 - 22:21
Boltas, а как на динамических серверах сможет работать?
Гость
26 - 10.05.2014 - 23:35
"Проблема в интернете одна - имя ей школота"(с) bash.im
27-Boltas > помимо "читать" и "понимать" я еще знаю такую вещь как OSI и протокол TCP/IP.
Обмен данными в любой сети (в т.ч. Интернет) идет пакетами, каждый пакет имеет вид (упрощенно)
[IP получателя]:[порт]-[IP отправителя]:[порт]-[содержимое пакета]
При проходе через NAT [IP отправителя]:[порт] заменяется на [IP NAT сервера]:[порт], а на сервере делается запись - пакеты по такому-то адресу перенаправлять на [IP отправителя]:[порт]. Все.

Вопрос - откуда взять адрес получателя? Для сайтов адреса берутся из DNS. Торренты, скайпы, аськи берут адреса из координирующих серверов, Тор берет базу из внутреннего хранилища (которое первоначально тоже было на серверах). По условиям задания плагин - свободный, кто захотел - тот и скачал. Максимальная скрытность - значит базы белых IP в плагине нет изначально (чтобы не заблокировали). Поэтому:

1. Откуда эти адреса берешь ты (с учетом того, что они постоянно меняются)?
2. Откуда ты знаешь "Где живет Вася?", особенно с учетом того, что адрес Васи может меняться ежечасно?
3. Как соединиться если Вася за NATом?

[сарказм]Поделись исходниками библиотеки пророчества пожалуйста, ну или хотя-бы алгоритмом, я тебе сам библиотеку напишу. На 3-х разных языках программирования, кроссплатформенную. И в историю IT точно войдешь как мегагуру.[/сарказм]
Поэтому:
1. Скайп имеет сервера.
2. В том как сделать "достаточно знать" и состоит вопрос этой темы.
3. "Если бы у бабушки был ... она была бы дедушкой", "сервер" - это не железка в 19-дюймовой стойке, а именно машина с "белым" статичным IP, которую как считает ТС моментально забанят т.е. понимать не умеешь ты, а не я.

Уже второй круг заканчивается. Все что можно сказать по теме написано в первых 15 постах. а хотя... Boltas, напиши модель соединения (алгоритм) двух клиентов без сервера, по любому протоколу. Напишешь реализуемо (без сканирования сети и не прописанных изначально серверов, в том числе компов с белым IP) - с меня 10 литров пива.
Гость
27 - 11.05.2014 - 00:40
28-VDRUG >вижу два пути
сложный - распределенная база активных соединений, то бишь в онлайн режиме видно кто в сети и на каком ip сейчас сидит
по теории вероятности, при большой массовости участников в сети будут обязательно пользователи со статикой, значит их ip-адреса можно принять за реперные точки, на которых по сути и будет хранится обновляемая в режиме реального времени база динамических адресов основной части пользователей
то есть, вошел в сеть новый пользователь - его компьютер тут же отправил пинг например на сотню активных статиков и прописал сам себя в этой базе
вышел из сети - после очередного обновления базы (в какой-то период времени допустим обратный проверочный пинг) из базы этот пользователь удаляется
если учесть тот факт, что мы по любому общаемся с ограниченным количеством людей, а не сразу со всем миром, то такие базы вполне возможно сделать локальными, а если точнее сказать, то многоуровневыми с постепенным добавлением "друзей" по мере загрузки контента или например по степени важности и т.д. и т.п.
получится даже что-то вроде предварительного фильтра, что само по себе не плохо - будет отбиваться по максимуму спам, флуд и реклама
таким образом появляется возможность самому определять нужность того или иного контента, а не хавать всё подряд, что грузит браузер с какого-нить сайта на сервере
прим. очень близкий пример - сеть майнеров битков))

вариант попроще
если будет много пользователей, то не сложно договориться и прикрутить несколько реперных статических ip прямо в ядровые ns-сервера, тем более прецедент уже есть - это домены в зоне .tls
тогда с хранением онлайн-базы (активных в настоящий момент пользователей) вообще проблем не будет, она всегда будет в сети

как-то так, но особо не вдумывался, может можно и еще что-то проще придумать
Гость
28 - 11.05.2014 - 00:49
29-КК СПД >хочешь копирну сюда страниц десять из википедии?
сразу стану королем)))

вы никак не можете понять одного, техника вопроса здесь не самое важное, ибо
Цитата:
Сообщение от КК СПД Посмотреть сообщение
Вопрос - откуда взять адрес получателя?
из своей записной книжки, тетрадки, блокнотика... ну как еще объяснить, что для того, чтобы позвонить жене нет никакой необходимости обзванивать всех женщин мира и спрашивать у них - не ты или Маша, Катя, Галя
просто нужно знать телефон своей супруги, ну или её ФИО, ну или хотя бы телефон её подружки на крайняк - тогда точно найдешь жену

п.с. не надо такую сетку сравнивать с фейсбуков или твиттером, это совсем другое
Гость
29 - 11.05.2014 - 08:59
31-Boltas > Не станешь. Потому что "записной книжки, тетрадки, блокнотика" в данной системе не может быть по определению. Потому что этот плагин будет рекламироваться, а значит его будут скачивать все подряд (в том числе и те, кто будет его потом банить по IP), поэтому список адресов должен быть динамическим т.е. постановка задачи исключает "записную книжку, тетрадку, блокнотик". Об этом и был разговор.

Вспоминается анекдот "Чукча не читатель, чукча писатель", тут уже на разный лад раз пять говорили, что на старте нужен сервер т.е. "записная книжка", потом когда "белых IP", (заметь - динамических!) наберется под сотню первое подключение будет занимать всего 4 дня, работа будет без сбоев (так сделали сеть Tor, причем заметь - эту сеть делали ультрапрофи, которые умнее всех нас вместе взятых!).

Так что не надо выставлять себя упортой школотой.
Гость
30 - 11.05.2014 - 09:50
32, да уж, а профессор что-нить слышал о таких сущностях, как i2p netdb ??
или познания ограниченны лишь тором?
так вот они вообще не используют ip-адреса интернета, а построенны на туннельных соединениях, прямых как палка
и еще, в сети Тор и сейчас есть управляющие сервера, точно не помню, но что-то около десятка по всему миру и как этот факт заставляет усомниться в анонимности этой сети, ведь там где в качестве управляющего узла выступает сервер, там хошь не хошь, а сам по себе возникает вопрос доверия
то есть, это по сути вообще не интернет, а надстройка сверху него

всё что вы, профессор, пишете о сетях выше, это вовсе не догма строительства сетей, а всего лишь описание как работает частный их случай - интернет

вообще, анонимность в сети - это блеф и самопиар отдельных разработчиков, которые что-нить придумали и толкают на рынок, поэтому нет смысла заниматься маразмом и прятаться по за углами (например создавать сетку только из дин.ip), но если нужен ресурс обмена прямыми сообщениями в сети именно! интернета без узловых серверов, то схема будет примерно такая, как я описал
товарищ, всё уже изобретено до нас, читайте мануалы и будет вам счастье)
Гость
31 - 11.05.2014 - 12:49
33-Boltas > раз такой умный, что же на халяву 10 литров пива не получил?

Скажу почему: недоучка. О "сущностях" слышал, даже могу намного больше их назвать... Хотя пиши еще, давно я так не ржал.

Воспитанный википедией ты наш, прочти для начала на той же википедии http://ru.wikipedia.org/wiki/%D0%A1%...0%BB%D1%8C_OSI

И ты откроешь удивительные вещи!
Оказывается есть целых 7 уровней взаимодействия в рамках сети. А теперь посмотрим (начнем снизу):
1. Физический уровень - провод или радиоканал.
2. Канальный уровень - обеспечение контроля целостности данных на физическом уровне
3. Сетевой уровень - протоколы передачи данных (в том числе и IP), а вот тут - затык. Без уровня IP или аналогичного протокола дальше не тронуться, но да, у тебя же есть связь на "туннельных соединениях"... Которые почему-то есть до 3 уровня модели OSI, а документации по ним нет. Наверное составители протоколов о них не знали.
4. Транспортный уровень - протоклы транспортного уровня (в том числе TCP и UDP)

Оп. Дальше вообще-то можно и не двигаться т.к. проблема именно на этом уровне (в маршрутизации). Остальные просто опишу двумя словами.

5. Сеансовый уровень - связь между устройствами.
6. Уровень представления - передача данных в сети (твои "туннельные соединения" кстати здесь).
7. Прикладной уровень - то, через что работают программы.

Учи матчасть профессор.

Заодно подучи принципы построения децентрализованных сетей на примерах i2p, p2p, Tor. Все, я твоим персональным гуглом подрабатывать задолбался. RTMF.
Гость
32 - 11.05.2014 - 13:19
33-Boltas > кстати, "на добивание", есть такая вещь - "протокол". Все аппаратное и программное обеспечение работающее в сети делается и пишется исходя из положений протокола. Поэтому пока сетевая программа не "отработает" все 7 уровней OSI (первые 6 обычно отдают на откуп библиотекам) она ни с кем не соединиться. Даже если ты что-то придумаешь, то твой "доморощенный" пакет или дейтаграмма будут интерпретированы твоим же модемом как "битые" и отфильтрованы. Перепрошьешь модем - срежет модем провайдера. Даже если ты договоришься с провайдером - срежет магистрал, купишь Ростелеком - так он в мире не единственный провайдер. А если у тебя денег столько - найми кого-нибудь новый протокол написать и купи всех, чтобы на этот протокол перешли... Дешевле выйдет.

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

А так пиши - на баше маловато сообщений стало, хоть тут поржу. Хотя грешно смеяться над...
Гость
33 - 11.05.2014 - 13:28
34, ну слава богу, что наконец-то вспомнил, что интернет это не только команды и виртуальные порты, но и провода (коммуникации)... вот теперь правильной дорогой идете, профессор)
стоп, чуть не забыл о самом главном - еще пользователи со своими пристрастиями и желаниями, теперь всё
а остальное - как необходимо людям и что позволяет железо, так и программируется
Гость
34 - 11.05.2014 - 22:34
Шоу продолжается. Теперь и FIDO вспомнили... Кстати - дайлапу уже не по всем линиям ходит (из-за оцифровки сигнала). Так что "увы и ах" реинкарнировать "тот самый FIDO" не выйдет.

Потому как есть именно "пользователи", которые не будут искать дайлап-модем, которые "белорученьки" и которым оно все нафиг не надо.

Железо не "позволяет", а работает по протоколам. Иначе связь невозможна.

37-Сайты > просмотр IP утверждает, что у меня периодически IP-шник скачет с первого блока (и 217.ххх.ххх.ххх и 83.ххх.ххх.ххх бывает).
Гость
35 - 13.05.2014 - 00:55
Цитата:
Сообщение от Сайты Посмотреть сообщение
динамические адреса всё равно находятся в общей подсети. Если выйти на подсеть, то потом можно без труда найти и комп в ней
Mts/megafon/beeline/tele2/yota - кто из них даёт белый (реальный) адрес без допуслуг, платных/юрлицам онли?


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены