根据官方的文件,我们知道IPFS有八层子协议栈,从低往高分别为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。
配个网上的图。
网络层,这是一个基础层,这一层的技术细节过多,并且也非常复杂,已经超出了软件编程的范围,可以将这一层理解为基础的网络设备或者是网络能力,并以此能力构建了点对点链接的基石,其中增加了加密传输,网络穿越,多链接混合等等技术。该层使用的LibP2P可以支持任意传输层协议,比如TCP/UDP/SCTP等。NAT技术能让内网中的设备共用同一个外网IP,我们都体验过的家庭路由器就是这个原理。从上面的描述我们应该不难得出一个结论,ipfs可以近似看做是建立在 tcp/ip协议栈传输层之上的一个应用,类似于应用层的一个存在。
身份层和路由层,把这两层合在一起是由于它们都涉及到Kademlia协议。身份层通过它生成IPFS节点,路由层通过它实现