Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.11.2011, 14:38
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
Вопрос как создаются p2p сети?

Доброго всем времени суток!

Как реализуется p2p сеть желательно децентрализованная? примерчики какие нибудь ну или что-нибудь вообще?
Насколько я понял p2p клиенты основаны на TCP и не используют серверные компоненты , т.к. если бы они их использовали, то к людям у которых стоит роутер невозможно было бы подключиться без перекидывания портов, а у меня есть роутер, и при этом работает и utorrent и skype без перекидывания портов=)

всем за ранее спасибо за ответы!
Ответить с цитированием
  #2  
Старый 09.11.2011, 16:34
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

http://ru.wikipedia.org/wiki/P2P
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 09.11.2011, 18:28
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX

это то я читал!!! мне больше интересна сама реализация простейшей сети
Ответить с цитированием
  #4  
Старый 09.11.2011, 19:07
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Transmission bittorrent client. Сырцы открыты - курите на здоровье
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 09.11.2011, 19:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну вообще-то это неверно, что для P2P не нужен сервер. Насколько я в курсе реализация примерно такова:
Имеется сервер на котором хранится информация о подписчиках. Подписчиком становится любой комп на котором запущено клиентское ПО. Клиент сообщает серверу, что для общего доступа есть файлы с такой-то контрольной суммой. Таким образом на сервере накапливается база описателей файлов. Далее я не уверен, но скорее всего, что описатель файла содержит в себе помимо общей контрольной суммы так-же контрольные суммы каждой из частей (файл делится обычно более чем на 100 частей). Таким образом при запросе на получение какого-либо файла для клиента, происходит анализ описателя файла и ищутся активные подписчики имеющие у себя хотя-бы одну из частей с совпавшей контрольной суммой.
Ну и конечно серверов может быть в сети более одного и они по логике должны обмениваться подписчиками.
Так-что для передачи данных сервер действительно не используется, но вот для поиска нужных подписчиков без него не обойтись.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 09.11.2011 в 19:14.
Ответить с цитированием
  #6  
Старый 09.11.2011, 20:14
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Ну вообще-то это неверно, что для P2P не нужен сервер. Насколько я в курсе реализация примерно такова:
Имеется сервер на котором хранится информация о подписчиках. Подписчиком становится любой комп на котором запущено клиентское ПО. Клиент сообщает серверу, что для общего доступа есть файлы с такой-то контрольной суммой. Таким образом на сервере накапливается база описателей файлов. Далее я не уверен, но скорее всего, что описатель файла содержит в себе помимо общей контрольной суммы так-же контрольные суммы каждой из частей (файл делится обычно более чем на 100 частей). Таким образом при запросе на получение какого-либо файла для клиента, происходит анализ описателя файла и ищутся активные подписчики имеющие у себя хотя-бы одну из частей с совпавшей контрольной суммой.
Ну и конечно серверов может быть в сети более одного и они по логике должны обмениваться подписчиками.
Так-что для передачи данных сервер действительно не используется, но вот для поиска нужных подписчиков без него не обойтись.

Ты описал гибридную сеть
Как происходить подключение между клиентами,если у них используется только клиентские компоненты=)

ща по роюсь в тех сырцах может чего накопаю=)
Ответить с цитированием
  #7  
Старый 09.11.2011, 20:20
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Блин нифига не понимаю в этом c++ тем более там файлов завались=(
Ответить с цитированием
  #8  
Старый 09.11.2011, 21:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На самом деле если разговор идет о сервере, как о некотором компьютере, то для p2p сетей он действительно не очень нужен (в классическом торренте он нужен только для получения IP-адреса машины, на которой есть нужные файлы). Дальше устанавливается прямое соединение.
Если разговор идет о собственно сокетах (не важно какая имплементация - API, Indy и т.д.), то клиенсткое p2p ПО уже в себе содержит и сервер и клиента. Так что без сервера и тут не обошлось.
Ответить с цитированием
  #9  
Старый 09.11.2011, 21:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вот и я о том чуть выше писал.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #10  
Старый 09.11.2011, 22:49
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
На самом деле если разговор идет о сервере, как о некотором компьютере, то для p2p сетей он действительно не очень нужен (в классическом торренте он нужен только для получения IP-адреса машины, на которой есть нужные файлы). Дальше устанавливается прямое соединение.
Если разговор идет о собственно сокетах (не важно какая имплементация - API, Indy и т.д.), то клиенсткое p2p ПО уже в себе содержит и сервер и клиента. Так что без сервера и тут не обошлось.
как тогда использовать серверные сокеты если у людей роутеры стоят которые не позволяют к ним подключаться???

или происходит так,надо проверит=) клиент подключается к кому либо в сети,предположим взяв ip адреса с главного сервера, во время подключения открывается порт и через который к серверу могут спокойно коннектиться,так???
Ответить с цитированием
  #11  
Старый 09.11.2011, 22:54
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

В большинстве роутеров можно сделать так, чтоб он входящее соединение по определенному порту направлял на указанную машину на указанный порт
Ответить с цитированием
  #12  
Старый 09.11.2011, 22:57
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от ChinYan
В большинстве роутеров можно сделать так, чтоб он входящее соединение по определенному порту направлял на указанную машину на указанный порт
это то я в курсе, не будет же каждый пользователь сидеть и разбираться в своем роутере как в нем перекидываются порты,ведь мы для торрент клиентов и то го же скайпа порты не перекидываем!!!
Ответить с цитированием
  #13  
Старый 09.11.2011, 22:58
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Можно, и ТС сказал об этом в начальном топике. Вопрос был, как работают торренты и скайп без проброса портов с обеих сторон.

P.S. Опоздал
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #14  
Старый 09.11.2011, 23:01
kep kep вне форума
Прохожий
 
Регистрация: 09.11.2011
Сообщения: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Можно, и ТС сказал об этом в начальном топике. Вопрос был, как работают торренты и скайп без проброса портов с обеих сторон.

P.S. Опоздал
ну можно сказать это не все что меня интересовало,но получается что это самое важное=)
Ответить с цитированием
  #15  
Старый 09.11.2011, 23:14
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Присоединяюсь к ТС. Когда-то давно сам задавал похожий вопрос, но ответа так и не получил...
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter