《IPFS原理与实践》 —3.2 网络层(Network)

2021-04-17 16:01:36 FIL16888 1435

3.2 网络层(Network)

IPFS节点与网络中其他成千上万个节点进行连接通信时,可以兼容多种底层传输协议。接下来我们详细介绍IPFS网络堆栈的特点。

传输:IPFS兼容现有的主流传输协议,其中有最适合浏览器端使用的WebRTC DataChannels,也有低延时uTP(LEDBAT)等传输协议。

可靠性:使用uTP和sctp来保障,这两种协议可以动态调整网络状态。

可连接性:使用ICE等NAT穿越技术来实现广域网的可连接性。

完整性:使用哈希校验检查数据完整性,IPFS网络中所有数据块都具有唯一的哈希值。

可验证性:使用数据发送者的公钥及HMAC消息认证码来检查消息的真实性。

IPFS几乎可以使用任意网络进行节点之间的通信,没有完全依赖于IP协议。IPFS通过multiaddr的格式来表示目标地址和其使用的协议,以此来兼容和扩展未来可能出现的其他网络协议。

# an SCTP/IPv4 connection

/ip4/10.20.30.40/sctp/1234/

# an SCTP/IPv4 connection proxied over TCP/IPv4

/ip4/5.6.7.8/tcp/5678/ip4/1.2.3.4/sctp/1234/

IPFS的网络通信模式是遵循覆盖网络(Overlay Network)的理念设计的。覆盖网络的模型如图3-2所示,是一种网络架构上叠加的虚拟化技术模式,它建立在已有网络上的虚拟网,由逻辑节点和逻辑链路构成。图中多个容器在跨主机通信的时候,使用Overlay Network网络模式。首先虚拟出类似服务网关的IP地址,例如10.0.9.3,然后把数据包转发到Host(主机)物理服务器地址,最终通过路由和交换到达另一个Host服务器的IP地址。


首页
产品
新闻
联系