P2P网络详解

image-20210426161613756

点对点网络技术难点

  • 节点发现与维护
  • 如何实现内网穿透
  • 通信协议

节点发现策略

  • 创建一个本地节点池,用于存储有效节点
  • 存在默认的种子节点,可手工添加外部节点
  • 启动时优化连接热节点、附近节点
  • 可获取所连接节点的节点池

如何实现内网穿透

image-20210426225218029

关于NAT的背景

NAT的作用NAT(Network Address Translator),网络地址转换。它是一种把内部私有网络IP地址翻译成公有网络IP地址的技术,如图5-1所示。NAT是在IP地址日益缺乏的情况下产生的,它的主要目的是使地址能够重用。

内网主机用私有地址在内网能与其它的内网主机无误地通信,但它不能直接用私有地址访问外网的主机,因为私有地址不能被路由。它要与外网通信,必须经过NAT设备(如网关,路由器)。

NAT 分为Basic NAT与 NAPT(Network Address/Port Translator),Basic NAT不能够进行TCP/UDP的端口信息转换 因此目前使用比较少,目前应用比较广的为NAPT。

比特币和以太坊均使用了 UPnP 协议作为局域网穿透工具,只要局域网中的路由设备支持 NAT 网关功能、支持 UPnP 协议,即可将你的区块链节点自动映射到公网上。

https://www.pianshen.com/article/9838283226/