这个问题想不明白。客户端A需要从客户端B上下载某一个文件,A可以从tracker上得到B的IP地址。
得到的IP地址是B所在家庭网的外网IP,A连接到这个IP的某个端口,怎么保证就是连接到B所在机器呢?因为B所在的网络可能不只一台机器,而它们对外的IP都是一样的。
正常情况下,A连接B,应该是连接到B所在的无线路由器上的某个端口吧?
这个问题想不明白。客户端A需要从客户端B上下载某一个文件,A可以从tracker上得到B的IP地址。
得到的IP地址是B所在家庭网的外网IP,A连接到这个IP的某个端口,怎么保证就是连接到B所在机器呢?因为B所在的网络可能不只一台机器,而它们对外的IP都是一样的。
正常情况下,A连接B,应该是连接到B所在的无线路由器上的某个端口吧?
家庭网(局域网)与公网隔着一个 NAT(网络地址转换)设备,通常是路由器。
隔着公网的两个局域网,使用 NAT 穿透技术可以实现通讯,类似的叫法如“UDP 打洞”,这也是 P2P 软件通讯方法。
根据 NAT 不同类型,穿透技术大致分成直连、中继两种。
顾名思义,“直连”指通讯双方的数据包可以直达,而“中继”需要借助(第三方)中继服务器传输。
关键词: NAT,穿透