我一直很好奇两台计算机如何通过互联网连接。
例如,使用 whatismyip 服务的 IP 地址,我只能看到路由器的配置页面,但如果使用 IP 地址,像比特币这样的纯 p2p 服务会直接连接两台计算机。它们会连接到我的路由器/无线 AP。它们真的使用 IP 还是其他方法?我甚至不需要进行端口转发就可以让 p2p 软件正常工作。
答案1
如果您对 P2P 应用程序如何在互联网上通信感兴趣,那么这实际上取决于您谈论的是哪种 P2P 应用程序。据我所知,所有 P2P 应用程序都通过 TCP/IP 进行传输,因为它是互联网运行的基础。
每个应用程序都通过网络协议进行通信,该协议通常由相关应用程序的开发人员专门定制。例如,BitTorrent 通常通过一系列端口 (6881-6889) 进行传输,并且比特流关于它如何在互联网上进行通信,最好的总结如下(摘自维基百科)
BitTorrent 客户端是任何实现 BitTorrent 协议的程序。每个客户端都能够使用该协议通过网络准备、请求和传输任何类型的计算机文件。对等端是任何运行客户端实例的计算机。
任何应用程序都是如此,无论是基于服务器-客户端还是 P2P,或者它使用的任何其他类型的拓扑。所有通信都通过双方计算机都理解的网络协议进行。
答案2
我知道你到底在纠结什么。是的,P2P 网络确实使用了一些技术,比如“自动端口转发”,称为打洞(网络)或 NAT 遍历. VoIP 产品、在线游戏应用程序和 P2P 网络软件都使用打洞技术。