libp2p Android,Libp2p学习(一)

Libp2p是一个旨在支持多种传输和安全协议的网络库,如TCP、UDP、QUIC等。它实现了多路复用,允许在一个端口上执行所有操作,减少了握手和资源消耗。此外,libp2p还考虑了NAT穿透和中继通信,确保在复杂网络环境中也能建立连接。其协议设计注重模块化和灵活性,能够适应不同的应用场景,并支持加密和身份验证。
摘要由CSDN通过智能技术生成

---恢复内容开始---

Libp2p学习

1. 介绍

Libp2p的实现目标是:

支持各种各样的传输方式:

传输:TCP,UDP,SCTP,UDP,uTP,QUIC,SSH,etc.

安全传输:TLS,DTLS,CurveCP,SSH

有效使用sockets(连接重用)

允许端点之间的交流可以在一个socket上复用(避免过多的握手)

允许端点之间通过一个协商过程使用多协议以及各自的版本

向后兼容

在现在的系统中可以运行

充分使用当前网络技术的能力

实现NAT转换

实现连接中继

实现加密通道

充分使用基础传输(例如原生的流复用等)

传统的7层OSI模型表征不适合libp2p。Libp2p根据协议的角色(功能)进行划分。不同的lip2p协议可以具有相同的功能,例如,bootstrap lists,mDNS,DHT discovery,PEX都进行节点发现,但他们可以同时存在甚至协同工作。而在OSI中,每一层通常都只有一个协议。

2. 基础

libp2p使用了multiaddr,一个自描述的地址形式,可以理解为不同协议不同地址类型的一个封装。这使得libp2p可以不透明的处理系统中的所有地址,支持网络层中的各种传输协议。

libp2p的协议是多个协议的集合。为了节约资源并使连接更容易,libp2p可以通过一个端口执行所有操作,它可以通过点对点连接复用其众多协议。这种多路复用适用于可信赖的流连接或者不可信赖的数据报。libp2p的目标是变得更加模块化和灵活,以适应于各种应用场景。

libp2p中的交流可以是加密、签名或者是明文。它使用了TLS这样的加密模型,但并不是整个TLS。它只使用了TLS模型中用于加密的最小的一部分。

由于对称NAT,容器以及虚拟机NAT和其他的不能绕过的NAT,libp2p必须使用中继通信来建立一个全连接图。中继应该是可选的,能够被用户关闭。连接中继应该作为transport实现,以对上层透明。

---恢复内容结束---

内容来源于网络如有侵权请私信删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值