P2P网络详解
点对点网络技术难点
- 节点发现与维护
- 如何实现内网穿透
- 通信协议
节点发现策略
- 创建一个本地节点池,用于存储有效节点
- 存在默认的种子节点,可手工添加外部节点
- 启动时优化连接热节点、附近节点
- 可获取所连接节点的节点池
如何实现内网穿透
关于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 协议,即可将你的区块链节点自动映射到公网上。