GNUnet是什么

hacker 2020-09-08 18:35:06
问答

GNUnet是用于分散式对等网络的软件框架,是官方的GNU软件包。该框架提供了链接加密,对等发现,资源分配,通过多种传输进行的通信以及用于路由,多播和网络大小估计的各种基本对等算法。GNUnet的基本网络拓扑是网状网络的拓扑。

GNUnet 是用于分散式对等网络软件框架,是官方的 GNU 软件包。该框架提供了链接加密,对等发现,资源分配,通过多种传输进行的通信以及用于路由,多播和网络大小估计的各种基本对等算法。GNUnet 的基本网络拓扑是网状网络的拓扑。

GNUnet

GNUnet 包括一个分布式哈希表(DHT),它是 Kademlia 的一个随机变体,仍然可以在小世界网络中有效地路由。GNUnet 提供了“ F2F 拓扑 ”选项,用于仅将连接限制为用户的可信任朋友。然后,用户的朋友自己的朋友(等等)可以与用户的计算机间接交换文件,而无需直接使用其 IP 地址。

GNUnet 使用统一资源标识符(未经 IANA 批准,尽管已提出申请)。GNUnet URI 由两个主要部分组成:模块和模块特定的标识符。GNUnet URI 的格式为,
gnunet://module/identifier 其中 module 是模块名称,标识符是模块特定的字符串。

主要代码库使用 C 编写,但是其他语言中也存在绑定,以产生用于开发这些语言扩展的 API。GNUnet 是 GNU 项目的一部分。在 PRISM 揭露之后,它已经引起了黑客社区的关注。

GNUnet 由几个子系统组成,其中必不可少的是 Transport 和 Core 子系统。传输子系统提供不安全的链路层通信,而核心提供对等发现和加密。在核心子系统之上,构建了各种应用程序。

GNUnet 在框架的主要发行版中包括各种 P2P 应用程序,包括文件共享,聊天和 VPN;以及 另外,一些外部项目(例如 secushare)也在扩展 GNUnet 基础结构。

GNUnet 与较早的 Gnutella P2P 协议无关。Gnutella 不是 GNUnet 的官方 GNU 项目。

运输

最初,GNUnet 使用 UDP 进行基础传输。现在,GNUnet 传输子系统提供了多个选项,例如 TCP 和 SMTP。

在 IANA 上正式注册的通信端口为 2086(tcp + udp)。

信任系统

GNUnet 提供基于超额经济模型的信任系统。采用经济体制的想法来自 MojoNation 网络。

GNUnet 网络没有可信任的实体,因此无法维持全球声誉。相反,每个对等方都为其每个本地链接维护自己的信任。

当资源(例如带宽和 CPU 时间)过剩时,对等方会将其提供给所有请求的邻居,而不会降低信任度或以其他方式收费。当节点处于压力之下时,它会丢弃来自其内部信任值较低的邻居节点的请求。但是,当对等方的资源不足以满足每个人的请求时,它会拒绝那些邻居的请求,即它对信任的信任度较低,并通过降低对他人的信任度来向他人收费。

文件共享

这时的主要应用程序是匿名的,可防止检查的文件共享,允许用户匿名发布或检索各种信息。提供匿名性的 GNUnet 协议称为 GAP(GNUnet 匿名性协议)。GNUnet FS 可以另外使用 GNU libextractor 来自动注释具有元数据的共享文件。

GNU 名称系统

GNUnet 包括 GNU 名称系统(GNS)的实现,它是 DNS 的分散且不受审查的替代。在 GNS 中,每个用户都可以管理自己的区域,并且可以将子域委派给其他用户管理的区域。使用 GNUnet 的 DHT 执行其他用户定义的记录的查找。

协议翻译

GNUnet 可以在对等网络上建立 IP 流量隧道。如有必要,GNUnet 可以在此过程中执行 IPv4-IPv6 协议转换。GNUnet 提供了 DNS 应用程序级网关来代理 DNS 请求,并根据需要将地址映射到所需的地址族。这样,GNUnet 提供了一种可能的技术来促进 IPv6 过渡。此外,结合 GNS,GNUnet 的协议转换系统可用于访问隐藏服务-基于 IP 的服务,这些服务在网络中的某个对等方本地运行,并且只能通过解析 GNS 名称来访问。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Syncthing

    Syncthing是什么

    Syncthing是一个开源的文件同步客户端与服务器软件,采用Go语言编写。它可以在本地网络上的设备之间或通过Internet在远程设备之间同步文件,使用了其独有的对等自由块交换协议。
  • ReadLine是什么

    ReadLine是什么

    GNU ReadLine是一个开源的跨平台程序库,提供了交互式的文本编辑功能。它最早由Brian Fox使用C语言开发发布,遵守GNU/GPL协议。
  • ipsec是什么

    ipsec是什么

    IPsec(Internet Protocol Security)是一个协议包,通过对 IP 协议的分组进行加密和认证来保护 IP 协议的网络传输协议族(一些相互关联的协议的集合)。
  • unetbootin是什么

    unetbootin是什么

    UNetbootin是一种跨平台工具软件,可以用来建立Live USB 系统,也可以加载各种系统工具,或安装各种Linux操作系统(Linux套件)和其他操作系统,不需使用安装光碟(自动通过网络下载).
  • 僵尸网络是什么

    僵尸网络是什么

    僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
  • 软件框架是什么

    软件框架是什么

    软件框架通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。