Как узлы p2p подключаются через Интернет
Мне всегда было любопытно, как, скажем, два компьютера соединяются через Интернет.
Например, используя IP-адрес от службы whatismyip, я могу видеть только страницу конфигурации моего маршрутизатора, но чистые p2p-сервисы, такие как Bitcoin, соединяют два компьютера напрямую, если они используют IP-адрес. подключил бы к моему маршрутизатору / беспроводной точке доступа. Они действительно используют IP или другие методы? Мне не нужно делать даже переадресацию портов, чтобы заставить работать программное обеспечение p2p.
2 ответа
Если вас интересует, как P2P-приложения взаимодействуют через Интернет, это действительно зависит от того, о каком P2P-приложении вы говорите. Все P2P-приложения, о которых мне известно, передают по TCP/IP, учитывая, что это основа, на которой работает Интернет.
Каждое приложение обменивается данными по сетевому протоколу, который обычно специально разрабатывается тем, кто разрабатывал данное приложение. Например, BitTorrent обычно передает через ряд портов (6881-6889), а функциональность BitTorrent в отношении того, как он взаимодействует через Интернет, лучше всего суммируется следующим образом (взято из WikiPedia)
Клиент BitTorrent - это любая программа, реализующая протокол BitTorrent. Каждый клиент может подготовить, запросить и передать компьютерный файл любого типа по сети, используя протокол. Пир - это любой компьютер, на котором запущен экземпляр клиента.
То же самое можно сказать и для любого приложения, будь то сервер-клиент или P2P или любой другой тип топологии, который он использует. Все общение происходит через сетевые протоколы, которые понимают оба компьютера.
Я знаю, с чем именно вы боретесь. Да, в сети P2P используется какая-то технология, такая как «автоматическая переадресация портов», называемая перфорацией (сетью) или обходом NAT. В продуктах VoIP, онлайн-игровых приложениях и программном обеспечении для сетей P2P используется перфорирование.