书籍《P2P对等网络原理与应用》笔记:
1. DHT算法:DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络。DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。新版BitComet允许同行连接DHT网络和Tracker,也就是说在完全不连上Tracker服务器的情况下,也可以很好的下载,因为它可以在DHT网络中寻找下载同一文件的其他用户。
2. 在服务器之间采用P2P技术实现自动负载均衡也逐渐开始流行。
3. P2P:peer-to-peer,对等网。每个节点的地位是对等的,它既能充当网络服务的请求者,又能对其他计算机的请求做出响应,提供资源和服务。改变了目前互联网以服务器为中心的状态,重返“非中心化”,打破了互联网中传统的客户端/服务器(client/server,C/S)结构,体现了互联网自由、平等的本质。
4. P2P节点是自治的;节点及其互相之间的连接都是不可靠的。所有参与者可以提供中继转发功能。
5. 协议:Gnutella、FastTrack
6. gnutella:是简单又方便的网络交换文件完全分布式的p2p通信协议,提供另外一种更简单的交换文件方式给大家选择。
7. FastTrack:是采用树型对等网络模型,是集中目录式网络结构的发展模式。处于网络模型中的节点自动组成树型结构,其中计算能力较强的或者带宽更宽的节点成为超级节点,超级节点的功能类似于集中目录式网络中的服务器。
8. 由于P2P的发展,互联网的存储模式将由“内容位于中心”改变为“内容位于边缘”。
9. P2P发展经历了四个阶段:集中式、纯分布式、混合式、结构化模型。
10. 代表软件:VOD、QQ、BitTorrent、eMule(开源的)、迅雷、PPLive。
11. BitTorrent,BT下载原理:BT服务器是通过一种传销的方式来实现文件共享的。举个例子来说吧,例如BT服务器将一个文件分成了N个部分,有甲、乙、丙、丁四位用户同时下载,那么BT并不会完全从服务器下载这个文件的所有部分,而是根据实际情况有选择地从其他用户的机器中下载已下载完成的部分。例如甲已经下载了第1部分,乙已经下载了第2部分,那么丙就会从甲的机器中下载第1部分,从乙的机器中下载第2部分,当然甲、乙、丁三位用户也在同时从丙的机器中下载相应的部分,这就大大减轻了BT服务器的负荷,也同时加快了丙的下载速度,也就是说每台参加下载的计算机既从其他用户的计算机上下载文件,同时自身也向其他用户提供下载,因此参与下载的用户数量越多,下载速度也越高。软件使用python开发的。
12. 从广义上讲,终端与终端之间的即时通信(instant messaging,IM)产品都可归类为P2P应用。
13. P2P搜索技术
14. P2P还可以应用在数据存储、协同工作、分布式计算和搜索引擎。弱点:知识产权缺乏有效保护。
15. P2P在应用层:内容路由功能和内容传送。
16. P2P网络中某个节点需要获得特定“资源”时,必须首先能够定位哪些节点拥有所需“资源”,这部分功能在P2P系统中称为内容路由功能。当节点确定了哪些节点拥有同样“资源”后,需要采用某种机制将资源从多个节点并行获取下来,同时从不同的节点获得的资源片段应该不同,否则失去了并行传送的意义,这部分功能称为内容传送。
17. 解决NAT穿越问题是发挥P2P效率的不可缺少的一部分工作。
18. 集中式P2P网络:集中式只是针对路由查询机制而言,在内容传送上仍然是对等服务思想。
19. 小世界网络模型是一类具有较短的平均路径长度又具有较高的聚类系数的网络的总称。在网络中两点间的平均距离L随网络规模(网络中节点数为N)呈对数增长,即L-lnN,当网络中节点数增加很快时,L变化想对缓慢,则称该网络具有小世界效应。小世界网络(Watts-Strogatz)模型。规则网络和随机网络都不是小世界网络。(纯分布式P2P网络)
20. 纯分布式P2P网络:请求节点向全网广播,使用泛洪技术。理论保证了泛洪机制的消息送达延时不会太大,理论上分布式网络的泛洪消息能够在1s以内送达所有节点。为了消除泛洪循环问题:一直方法是对每个查询消息设置TTL值,每被转发一次,TTL减1,当节点收到TTL为0的消息时,不再转发。除了限制TTL外,为消息设置唯一标志,对接收到的重复消息不再转发也可以有效防止消息环路的产生。TTL是 Time To Live的缩写,生存时间值。此网络有些问题难以解决,特别是消息响应风暴问题。但这不代表分布式结构无实用价值,而是说当网络结构达到一定规模时,无结构的纯分布式网络面临的问题可能是致命的。
21. 混合式P2P网络:节点分为超级节点(super node,SN)和普通节点(ordinary node,ON)。当一个普通节点需要下载某个文件时,会向其父节点发送查询请求。父节点再通过泛洪方式在超级节点组成的网络平面内进行泛洪广播,由超级节点返回相关的索引信息,这种方式可以将泛洪限制在超级节点范围内,避免大规模泛洪存在的问题。
22. 所谓异构网络是指节点在性能、资源、带宽方面存在着巨大差异的网络。P2P开发者不必拘泥于某种架构或一种特定方法,应该根据特定应用进行灵活设计。
23. 结构化P2P网络:将资源索引信息进行有序组织并按照某种规律保存到相应的节点。因此这种方案中,资源的索引信息未必一定要保存在资源所在的节点。
(1) DHT算法:调整一下P2P网络拓扑图,使得邻居之间的节点编号有一定规则,如按照大小排成一个链表,并且每个节点除了保存邻居节点信息,还保存一些相距稍远的节点信息。那么请求节点在搜索节点i时,可以根据自己的编号与节点i的关系大致判断节点i的位置,从而把请求消息首先发给距离节点i较近的节点而不一定是邻居节点。这样会形成更好的搜索效果。
(2) Chord算法(环形结构)
(3) Pastry算法(分层结构)
(4) CAN算法:content addressable network,内容可寻址网络。(向量空间结构)
24. P2P网络核心技术___内容传送。内容传送调度算法。必须采用一种机制使多个节点可以有序地进行传输,避免多个节点发送同样的内容。
25. 基本传送技术:稀有片段问题。一个合理的策略是先下载网络中较稀有的片段,以免出现存有稀有片段的节点离开而导致整个文件无法完整下载的情况。(非实时内容传送技术)
26. 实时内容传送技术:循环队列,缓存。
27. 网络规模增长导致IP地址的短缺。NAT:network address translation网络地址转换实现了网络地址的复用。这导致P2P网络中位于不同NAT设备之后的两个节点之间直接建立TCP连接或UDP连接存在很大困难。目前2种方法:一种称为打洞,即UDP Punch技术;另一种是利用NAT设备的管理接口,称为UPnP技术。
28. TCP协议在高丢包率的网络条件下吞吐量非常低,这其实是TCP流控制的一个优点,但是对于实时应用来说,TCP的吞吐量可能达不到上层应用要求,而UDP则能够以较激进的方式快速获得内容。
29. 开源P2P平台:JXTA
30. BT网络协议分析:通常的做法是选择将.torrent文件控制在50~75KB的分片尺寸。建议分片大小为512KB或者更小,每个分片都有相应的SHA1校验码,作为piece字段的值。
31. eMule的排队机制和上传积分系统有助于激励人们共享并上传资源,以便自己更容易更快速地下载资源。UDP方式通信。
32. 所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。流媒体(Streaming Media)的出现极大地方便了人们的工作和生活。在地球的另一端,某大学的课堂上,某个教授正在兴致盎然地传授一门你喜欢的课程,想听?太远!放弃?可惜!没关系,网络时代能满足你的愿望。
33. 市场上主流的流媒体技术有3种:Real Networks公司的Real-Media、微软的Windows Media,苹果公司的Quick Time。这3家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协议。
34. 所谓流,就是字符串的集合。因此,无论是包、视音频数据都可以看做是一个流。
35. Skype可以看做是P2P技术演进到混合模式后在语音通信领域的典型应用。使用AES加密算法。
36. P2P网络搜索应用
非结构化P2P网络搜索算法
(1) 广度优先搜索:源节点利用过去的查询信息和统计结果,通过一些算法,如pagerank、gossip和ISM等启发式算法挖掘一些能够快速返回高质量结果的邻居,并将查询消息发给它们,这些邻居接下去进行同样的操作或广度优先搜索操作,这样使得查询的成本大大降低。
(2) 最大度搜索
(3) 随机游走搜索
结构化P2P网络搜索算法
(1) 弦环性拓扑结构搜索算法
(2) 树型拓扑结构搜索算法
其他搜索算法
(1) 中心搜索
(2) 分布式搜索
(3) Freenet网络搜索算法
37.搜索引擎的工作原理:可以分为三步:从互联网上抓取网页、建立索引数据库、在索引数据库中搜索排序。
(1)、从互联网上抓取网页,就是利用能够从互联网上自动收集网页的Spider系统程序,自动访问互联网,并沿着任何网页中的所有URL爬到其他网页,重复这个过程,并把爬过的所有网页收集回来。
(2)、建立索引数据库,就是由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息,根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度或重要性,然后利用这些相关信息建立网页索引数据库。
(3)、在索引数据库中搜索排序,就是当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关度数值排序,相关度越高,网站排名越靠前。最后,由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
38.P2P网络运营系统体系架构:松耦合原则。
39.P2P网络监控、首个P2P网络病毒于2001年出现。
40.DPI(Deep Packet Inspection)是一种基于数据包的深度检测技术,针对不同的网络应用层载荷(例如HTTP、DNS等)进行深度检测,通过对报文的有效载荷检测决定其合法性。
41.DFI(Deep flow Inspection)深度流检测技术
42.QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。 在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
43.P2P流量本地化、P2P内容重定向、P2P内容缓存就近交换。
44.P4P全称“Proactive network Provider Participation for P2P”, 是P2P技术的升级版,意在加强服务供应商(ISP)与客户端程序的通信,降低骨干网络传输压力和运营成本,并提高改良的P2P文件传输的性能。与P2P随机挑选 Peer(对等机)不同,P4P协议可以协调网络拓扑数据,能够有效选择Peer,从而提高网络路由效率。
45.展望:随着互联网带宽的增加尤其是上行带宽的增加以及IPv6的普及,目前限制P2P发展的带宽不对称和NAT穿越问题不再存在,因此在文件下载、在线流媒体应用方面P2P很有可能会表现出比云计算更强大的优势。