类似bittorrent这样的p2p软件,怎么连接到其他客户端?

新手上路,请多包涵

这个问题想不明白。客户端A需要从客户端B上下载某一个文件,A可以从tracker上得到B的IP地址。

得到的IP地址是B所在家庭网的外网IP,A连接到这个IP的某个端口,怎么保证就是连接到B所在机器呢?因为B所在的网络可能不只一台机器,而它们对外的IP都是一样的。

正常情况下,A连接B,应该是连接到B所在的无线路由器上的某个端口吧?

阅读 2.4k
2 个回答

家庭网(局域网)与公网隔着一个 NAT(网络地址转换)设备,通常是路由器。

隔着公网的两个局域网,使用 NAT 穿透技术可以实现通讯,类似的叫法如“UDP 打洞”,这也是 P2P 软件通讯方法。

根据 NAT 不同类型,穿透技术大致分成直连、中继两种。
顾名思义,“直连”指通讯双方的数据包可以直达,而“中继”需要借助(第三方)中继服务器传输。

关键词: NAT,穿透

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进