![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго всем времени суток!
Как реализуется p2p сеть желательно децентрализованная? примерчики какие нибудь ну или что-нибудь вообще? Насколько я понял p2p клиенты основаны на TCP и не используют серверные компоненты , т.к. если бы они их использовали, то к людям у которых стоит роутер невозможно было бы подключиться без перекидывания портов, а у меня есть роутер, и при этом работает и utorrent и skype без перекидывания портов=) всем за ранее спасибо за ответы! |
|
#2
|
||||
|
||||
|
|
|
#3
|
|||
|
|||
|
Цитата:
это то я читал!!! мне больше интересна сама реализация простейшей сети ![]() |
|
#4
|
||||
|
||||
|
Transmission bittorrent client. Сырцы открыты - курите на здоровье
![]() |
|
#5
|
||||
|
||||
|
Ну вообще-то это неверно, что для P2P не нужен сервер. Насколько я в курсе реализация примерно такова:
Имеется сервер на котором хранится информация о подписчиках. Подписчиком становится любой комп на котором запущено клиентское ПО. Клиент сообщает серверу, что для общего доступа есть файлы с такой-то контрольной суммой. Таким образом на сервере накапливается база описателей файлов. Далее я не уверен, но скорее всего, что описатель файла содержит в себе помимо общей контрольной суммы так-же контрольные суммы каждой из частей (файл делится обычно более чем на 100 частей). Таким образом при запросе на получение какого-либо файла для клиента, происходит анализ описателя файла и ищутся активные подписчики имеющие у себя хотя-бы одну из частей с совпавшей контрольной суммой. Ну и конечно серверов может быть в сети более одного и они по логике должны обмениваться подписчиками. Так-что для передачи данных сервер действительно не используется, но вот для поиска нужных подписчиков без него не обойтись. Последний раз редактировалось Страдалецъ, 09.11.2011 в 19:14. |
|
#6
|
|||
|
|||
|
Цитата:
Ты описал гибридную сеть Как происходить подключение между клиентами,если у них используется только клиентские компоненты=) ща по роюсь в тех сырцах может чего накопаю=) |
|
#7
|
|||
|
|||
|
Блин нифига не понимаю в этом c++ тем более там файлов завались=(
|
|
#8
|
|||
|
|||
|
На самом деле если разговор идет о сервере, как о некотором компьютере, то для p2p сетей он действительно не очень нужен (в классическом торренте он нужен только для получения IP-адреса машины, на которой есть нужные файлы). Дальше устанавливается прямое соединение.
Если разговор идет о собственно сокетах (не важно какая имплементация - API, Indy и т.д.), то клиенсткое p2p ПО уже в себе содержит и сервер и клиента. Так что без сервера и тут не обошлось. |
|
#9
|
||||
|
||||
|
Вот и я о том чуть выше писал.
|
|
#10
|
|||
|
|||
|
Цитата:
или происходит так,надо проверит=) клиент подключается к кому либо в сети,предположим взяв ip адреса с главного сервера, во время подключения открывается порт и через который к серверу могут спокойно коннектиться,так??? |
|
#11
|
|||
|
|||
|
В большинстве роутеров можно сделать так, чтоб он входящее соединение по определенному порту направлял на указанную машину на указанный порт
|
|
#12
|
|||
|
|||
|
Цитата:
|
|
#13
|
||||
|
||||
|
Можно, и ТС сказал об этом в начальном топике. Вопрос был, как работают торренты и скайп без проброса портов с обеих сторон.
P.S. Опоздал ![]() |
|
#14
|
|||
|
|||
|
Цитата:
|
|
#15
|
||||
|
||||
|
Присоединяюсь к ТС. Когда-то давно сам задавал похожий вопрос, но ответа так и не получил...
|