分布式课程笔记--02分布式系统进程和通讯

overlay network

(逻辑上得网络,逻辑与物理不一致):覆盖网络,应用层网络。P2P就是一种覆盖网络P2P是集中分散分形概念的同行对等覆盖网络,网络覆盖就是指用户能够接收到网络信号的范围。
在这里插入图片描述

缺点:逻辑与物理不一致,优化会有问题。
P2P技术 :纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。
这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。可以作为云计算系统,用k-v 存储,使用在p2p哈希中。
几种p2p技术应用:

Napster:

在这里插入图片描述

应用于广域网,用k-v 存储,需要解决数据一致性得问题
Napster是一款可以在网络中下载自己想要的MP3文件的软件。它同时能够让自己的机器也成为一台服务器,为其它用户提供下载。是一种在线音乐服务,最初由西恩·帕克创建的文件共享服务。Napster是第一个被广泛应用的点对点(Peer-to-Peer,P2P)音乐共享服务
在这里插入图片描述

对客户端:
1:连接Napster得服务器
2:上传你想要分享得文件
3:服务器(只起索引作用)去维护一个<文件名,ip地址,大小>的目录,但是服务器是不存储文件内容得。
可以有效解决服务端得压力。还会牵扯到相应得算法,去找到最近得host
缺点:会严格依赖服务器,安全性低。
集中式服务器是拥塞的源头,集中式服务器是单点故障不安全:
明文信息和passwds napster.com声明对用户的版权侵犯负责"间接侵权"

Gnutella

:(无结构的p2p,没办法优化,只能泛洪)(效率低,需要周期性的维护信息)是一种文件共享网络
完全抛弃了服务器得概念
在这里插入图片描述
具体怎么通讯呢:
在这里插入图片描述
Gnutella曾经是一种纯粹的基于洪泛式请求(query flooding)协议。早期的Gnutella 0.4版使用5种不同的数据包种类,即是:(使用query flooding,则为了防止消息一直在网络中不停地转发,就会添加ttl(给它一个生命周期–)字段或者跳数hops++)
ping:用于发现网络中的节点
pong:用于回复ping消息
query:用于寻找某一个文件search for a file
query hit:用于回复query消息
push:用于处于防火墙后的服务器的下载请求
以上不同消息包的定义主要是为了处理Gnutella网络中的搜索功能。
文件传输功能是由HTTP协议实现的。
为了避免重复的传输,每个对等点维护一个最近收到的消息列表查询被转发给所有邻居,除了接收到的peer每个查询(通过DescriptorID标识)只转发一次QueryHit只路由回peer,从peer接收到的查询具有相同的DescriptorlD具有相同的DescriptorID和负载描述符(msg类型,例如,查询)的副本将被删除,QueryHit将使用DescriptorID删除未看到的查询(类似于路由表的维护)
chord System(Structured Peer-to-peer,有结构,可以优化)

BitTorrent(混合架构)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Decentralized与distriButed的区别。
Decentralized相比集中式协议,改动不大。方便移植。
distriButed:人人都是服务器,相当于没有服务器,所有的协议都要改变。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章