CS 应用
一个服务端 N个客户端 文件传输时间的下限是 max(F/d,NF/Us)文件和客户端最小下载速度的比值和N份数据和服务端上传速度的最大值
下载速度的瓶颈是服务器上载速度和客户端的下载速度,传输时间随着客户端的数量增加而线性增加
P2P 人人为我 我为人人

优势:
- 下载速度明显快
- 可拓展性强
缺点:
- 节点随时下线,是动态的,难以管理
P2P的管理模式
非结构化P2P
Peer和邻居节点之间的链接关系构成一个覆盖网。 非结构化代表着peer和peer之间的边是任意建立的,即这个网络的形状是任意的。结构化即环状或树状规整的网络模型。
如何定位资源? 如何处理perr的加入和离开。
集中式目录服务器
peer上线后,向目录服务器发送自己的ip地址和资源列表。 因此可以实现资源的检索和peer的上线。
存在的问题:
- 单点故障: 目录服务器宕机,无法提供服务
- 法律问题:目录服务器是主要侵权者,容易被处罚
完全分布式
查询:泛洪查询
把查询发给我的所有邻居,然后邻居再把查询发给邻居的邻居,直到查询结果返回。
如果不加限制,泛洪查询无边无际,需要一个机制来限制查询的范围。TTL:限制查寻的跳数。
加入: 如何构建覆盖网络? 软件安装后,会自动配置向给定的10个peer发送ping请求,peer受到请求后会向它的邻居发送ping请求。 每个受到ping请求的都会向新加入的节点发送pong,建立联系。
混合体
每一个集群都有组员节点,和组长节点。 组员节点之间是集中式的,组长管理。组长之间是分布式的

实际工作的P2P BT BitTorrent
Bitmap 用来表示是否拥有资源。
每一个peer把自己的Bitmap泛洪给所有节点,交换拥有资源的情况。
新加入的节点,先随机挑选四个及以上的下载,后续主要请求稀缺的下载资源。
为了鼓励参与P2P,上传的资源越多,下载的优先级越高。每一个peer节点提供服务,规定只能并行四个资源。剩下的排队。贡献高的和上一个周期传输给我的带宽比较高的peer优先下载。 谁对我的好,我就对谁好 但也要随机,发展潜在客户。
如何加入这个洪流? 在BT网站,下载资源与.torrent文件,Torrent文件当中包括了Tracking server节点(在进行目标文件上下载的节点)。 然后通过上述的方法加入,互通有无。