LINUX.ORG.RU
ФорумAdmin

Устройство современных сетей и торренты

 ,


0

1

Сейчас пишу некое приложение, которое связывает 2 компьютера в сети между собой. Если компы находятся в одной сети и я знаю их IP - то трудностей никаких. А если я хочу связать 2 компьютера, у которых нет выделенных IP можно ли как-нибудь это сделать? Просто ведь те же торрент-клиенты каким-то образом могут создавать подключения кого-угодно к кому-угодно, как они это делают? Что можно почитать на эту тему? Пытался читать исходники libtorrent, не очень помогло ( точней совсем не помогло )

Ну, для начала почитай вообще про сети...
Тогда все вопросы отпадут сами.

Zhbert ★★★★★
()
Ответ на: комментарий от Chubakur

нет, но должно быть какое-нибудь звено с белым ip, естественно, если два участника с серыми ip

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)

Да плохо они друг к другу подключаются. Нужен или белый адрес, или проброс портов вручную, или проброс портов средствами UPnP. Иногда пытаются проткнуть NAT (гуглится по nat hole punching), но это скорее экзотический подход

anonymous
()

torrent работает по

  • простой клиент-серверной технологии но тогда для функционирования необходим файл *.torrent который содержит инфу о раздаче (имя файла контрольные суммы) и сервер (который может сказать у кого еще есть нужные файлы) в этом случае самое „узкое“ место. Во первых там хранятся все *.torrent файлы а во вторых его можно прикрыть и вся радость закончится.
  • технологии magnet-ссылок в которых уже содержатся и имена файлов и контрольные суммы т.е. вся нужная информация и централизированный сервер в этом случае хорошо но уже не обязательно. А клиенты узнают в таком случае друг о друге уже по DHT.
init_6 ★★★★★
()
Ответ на: комментарий от init_6

Вот узнал клиент1 с серым IP, что нужный ему блок данный есть у клиента2 с серым IP, как он к нему подключится?

Chubakur ★★
() автор топика
Ответ на: комментарий от Chubakur

Вот узнал клиент1 с серым IP, что нужный ему блок данный есть у клиента2 с серым IP, как он к нему подключится?

Молча.

И да в torrent „серый“ ip или нет разница будет только в скорости. Т.е. если оба ip „белые“ то да оно будет несколько быстрее всех других вариантов.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

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

Chubakur ★★
() автор топика
Ответ на: комментарий от Chubakur

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

Зачем?

Ладно… А если так

Вот узнал клиент1 с серым белым IP, что нужный ему блок данный есть у клиента2 с серым белым IP, как он к нему подключится?

А потом man diff и diff «серый ip» «белый ip»

init_6 ★★★★★
()

STUN, TURN, ICE

Думаю что-нибудь из этого используется.

wisp ★★
()
Последнее исправление: wisp (всего исправлений: 1)
Ответ на: комментарий от Chubakur

То есть 2 человека с серыми IP смогут подключиться друг к другу, если пробросить порты по UPnP?

Да. Достаточно чтобы один человек как-то пробросил порт. Но для этого нужно чтобы сеть умела UPnP

Skype на заре развития делал всякие пиринговые трюки. Сейчас они тупо наращивают количество супернод с белыми адресами

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

anonymous
()

походу у этого гентушника особая сетевая магия

anonymous
()

А если я хочу связать 2 компьютера, у которых нет выделенных IP можно ли как-нибудь это сделать?

два способа есть:

1. через третий сервер, IP которого известны обоим. Так торренты и работают.

2. через DHT. Суть такова: для входа в Сеть нужен IP любого узла. Новый клиент посылает туда поисковый запрос, ища сам-себя. Ищет он не свой IP, а свой хеш.

Себя он ессно не находит, за то находит несколько ближайших(к себе, по метрике) узлов. С ними клиент и общается.

Получается самоорганизующася сеть доля поиска чего угодно,от чего можно считать хеш(порнухи например, man Kademlia).

emulek
()
Ответ на: комментарий от fornlr

суть проста - обмен между людьми с серыми ip не получится

получится. Этот твой «серый» ненадолго «белеет» при соединении. Можно перехватить соединение и установить прямую связь между двумя «серыми». Например: https://ru.wikipedia.org/wiki/Hamachi

emulek
()

Пиши сразу IPv6-нативное приложение, не придется думать про NAT и серые IP

af5 ★★★★★
()
Ответ на: комментарий от af5

Получается что многие крупные корпорации так динамят ipv6 потому что начнётся революция p2p приложений при массовом переходе на ipv6. Даже основателя p2p социальной сети (Diaspora) кикнули несколько лет назад.

nerdogeek
()

hamachi и аналоги, вендогеймеры о таких трюках сто лет как знают.

prizident ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.