Linux环境下P2P流量控制系统的研_究与实现硕士学位论文.doc_第1页
Linux环境下P2P流量控制系统的研_究与实现硕士学位论文.doc_第2页
Linux环境下P2P流量控制系统的研_究与实现硕士学位论文.doc_第3页
Linux环境下P2P流量控制系统的研_究与实现硕士学位论文.doc_第4页
Linux环境下P2P流量控制系统的研_究与实现硕士学位论文.doc_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号 tp31 密级 公开 udc 编号 硕士研究生学位论文题目 linux环境下p2p流量控制系统的研究与实现声 明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得云南大学或其他教育机构的学位或证明而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。研究生签名: 日 期: 论文使用和授权说明本人完全了解云南大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅或借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 (保密的论文在解密后应遵循此规定)研究生签名: 导师签名: 日 期: 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日摘 要随着计算机技术和互联网技术的迅速发展,学校、企业等各种机构的许多关键业务越来越依赖于互联网,但是许多与事物无关的网络应用占去了绝大部分带宽,导致关键业务相应时间过长,使正常网络的运行受到严重影响。特别是现在p2p技术飞速发展,p2p下载软件无限制的占用带宽资源,它们使用动态端口,同时又伪装成http流量,很难被防火墙、路由器以及其它过滤设备发现。传统的网络级防火墙(包过滤)都是通过源/目的ip地址、mac地址、tcp/udp端口等进行过滤,缺少对应用层流量的分析,因此无法识别并控制p2p下载的流量。本文中作者提出了一种基于linux内核扩展模块的p2p数据识别和控制的方法,通过linux系统防火墙框架netfilter连接跟踪机制来跟踪所有的连接并判断每个包属于哪个连接。作者通过扩展netfilter/iptables框架,可以根据应用层数据来识别p2p连接,并且可以通过设置合适的防火墙过滤规则来管理p2p流量。此方法可以完全禁止不想要的p2p流量,还可以和linux qos工具一起使用来限制p2p的带宽占用,合理分配网络资源,从而提高网络性能。本文开发的p2p流量控制系统,基于应用层分析技术识别各种p2p流量,可以限制或者禁止p2p下载,也可以利用linux流量控制技术将p2p下载的流量控制在某个范围内。总之,本文对于网络中间存在的p2p下载提供了很好的监视和控制解决方案,使用的应用层分析技术也可让网络管理者对网络资源的应用分布情况得到充分的了解和认知。关键词: p2p 带宽管理 防火墙 包过滤 linux netfilter/iptablabstractwith the rapid development of computer technology and the internet technology, more and more critical applications of various organizations, e.g. enterprises and schools, depend on the internet, but a majority of bandwidth is occupied by those network applications far away from the normal transactions. these facts lead to a long response time of critical applications and harm the network performance severely. in particular, with the rapid development of p2p technology, p2p softwares for download and file transfer,taking bandwidth resources unlimited.these softwares use dynamic ports and masquerade its traffics as http traffics,which makes them hard to be identified by the firewalls,routers and other filtering machines.traditional packet filtering firewalls generally based on the source/destination ip address, mac address or tcp/udp port numbers in the packet headers. thus, they are unable to identify the p2p download traffics for their incapability of application layer data analysis.this thesis presents a method of p2p traffic identification and control based on linux kernel expanded model. linux netfilter connection tracking mechanism is in charge of tracking all the connections and judging to which connection every packet is related. through extending the netfilter/iptables framework,the identification of p2p connection according to the application layer data is achieved and through some appropriate firewall filter rules, the p2p traffic management could also succeeds. this method could totally prohibit undesirable p2p traffic, and as well could restrict p2p bandwidth usage together with linux qos tools. thus, the network resources could be alleviated and the performance be enhanced largely. this p2p traffic control system based on application layer analysis technology, could prohibit p2p download, and also could restrict the p2p download traffic to a predefined scope using linux traffic control mechanism.in conclusion, this thesis provides a very good solution for the monitor or control of p2p download in an internal network environment.keywords: p2p,bandwidth management,firewall, packet filtering , linux netfilter/iptable目 录摘 要abstract目 录第一章 绪 论11.1 p2p概述11.2 国内外研究现状11.3 课题背景及研究的意义21.4 本文主要研究内容3第二章 p2p网络及p2p协议分析.52.1 p2p的基本概念52.1.1p2p的定义52.1.2 p2p的特点62.1.3相关概念82.2 p2p主要网络模型82.2.1集中式p2p网络模型.82.2.2分布式p2p网络模型.92.2.3混合式p2p网络模型.102.3常见p2p协议分析.122.3.1 edonkey 200 fasttrack. 142.3.3 gnutella. .142.3.4 bittorrent .152.4 本章小结.18第三章 linux内核防火墙框架netfilter.193.1 linux 2.4内核防火墙机制.193.2 netfilter基础.213.2.1 netfilter框架结构.213.2.2 netfilter工作原理.213.2.3包选择工具iptables223.2.4连接跟踪connection tracking243.3 netfilter的编程接口243.3.1 netfilter内核模块分析243.3.2用户空间参数传递分析273.4 iptables的实现及扩展293.4.1 iptables核心数据结构293.4.2 iptables的扩展333.5连接跟踪/网络地址转换的实现及扩展383.5.1连接跟踪/地址转换在各检查点上调用的函数383.5.2连接跟踪的重要数据结构和工作流程393.5.3连接跟踪/地址转换的扩展433.6本章小结46第四章 基于内核扩展模块的p2p流量控制的实现474.1 系统总体思想474.2 p2p协议应用层识别的实现474.3 p2p协议识别的测试504.3.1 搭建测试环境504.3.2 对p2p-bt协议识别的测试514.3.3 对p2p-guntella协议识别的测试544.3.4 对p2p-edonkey协议识别的测试554.3.5 对p2p-fasttrack协议识别的测试564.4 带宽管理的实现584.4.1 流量管理的原理584.4.2 流量管理功能的设计614.4.3 流量管理功能的应用644.5 本章小结69第五章 总结与展望705.1总结.705.2展望.70致 谢72参考文献73vi第一章 绪 论1.1 p2p概述p2p技术最早可以追溯到usenet2的出现,但那个时候使 p2p 成为互联网杀手级应用的条件还不具备,所以直到1999年napster3的出现才能算是p2辉煌历程的开始。一个互联网应用要出现并成为杀手级应用必须具备两个条件:互联网上现有设备的支持和网络用户的强烈需求。随着互联网的发展,用户之间相互通信、交换资源的需求越来越强烈,而用户终端的计算性能也遵循摩尔定律4飞速发展,现在个人用户的台式机或笔记本性能已经非常强大,网络带宽也足以支持p2p计算所需要的带宽要求,这些条件都为p2p的出现奠定了坚实的基础。1998年18岁的肖恩.范宁写下一个叫napster的程序,1999年该程序成了互联网上的杀手级应用它令无数散布在互联网上的音乐爱好者美梦成真,napster网络最高峰时有8000万注册用户。cachelogic 2004年底对互联网流量进行了统计5,发现p2p流量从1999开始出现,此后一路飚升,短短5年之后便占据互联网总流量的60%,可见其发展之迅猛。cachelogic经过研究后6得出三个结论: p2p已经是isp网络的最大消费者;p2p流量已经大大超过web流量;p2p流量还在继续增长。1.2 国内外研究现状目前,国内对于p2p技术的研究和应用非常多,但是对于p2p的流量识别和控制方面的研究却非常之少,尤其是在p2p流量的控制方面的文章几乎很难找到。现在可以在网上找到一些p2p流量监控方面的软件。国内一些网络设备厂商也推出了这方面的产品。例如华为的secpath 1000f防火墙和eudemon500、1000防火墙、captech的网络管理软件网络慧眼,以及畅讯通信的产品qqsg。这些产品采用的主要技术都是深度数据包检测技术。 国外大多采用深度检测技术来发现p2p流量,从而控制p2p流量,或是使用缓存技术来实现对p2p流量的控制。国外也有一些关于这方面的产品。例如cisco公司pix firewall, cachelogic公司 p2p 流量管理解决方案。1.3 课题背景及研究的意义随着internet在中国的迅速发展,p2p应用正在逐渐占据互联网业务中举足轻重的地位。p2p不同与以往的服务器/客户机构的主从网络,它是一种对等网络技术。发展经历了从第一代的p2p应用,像napster,gnutella,kazaa到第二代的 bittorrent,并逐渐成熟起来。当今p2p的应用已经是非常普遍的事情,然而p2p的广泛应用着实让我们宽带运营商感到十分为难,因为这类对带宽的需求在理论上是无止境的,它们会使原来运行流畅的网络变得越来越拥塞,同时还极大改变了网络上的流量模型,并且将运营成本提高30%甚至更高。互联网的开放性使得大量的互联网增值业务可以迅速开发和部署,自从2002年bittorrent8技术产生以来,迅速成为了互联网上高效、便捷的下载工具,目前,根据主流运营商的统计,大约50%70的带宽被p2p流量所占据9-11。p2p的出现让上网用户在下载各种软件、电影等大块头数据时,体验到了飞一样的速度。然而,由于p2p绕过服务器,整个过程中缺乏有效的管理,也存在大量问题,例如:知识产权问题,安全性问题,大量垃圾冗余信息,以及严重占用带宽的问题。尤其对于企业网络来说,这种基于p2p技术的文件共享对运行在其中的企业级应用,如erp、crm、voip等,造成巨大的冲击。其危害主要可归纳为下面几方面:(1)改变了网络流量分布(2)网络流量不可预知性(3)网络拥挤,造成关键业务明显延迟(4)p2p下载造成很大的入站流量(5)充当上载服务器,p2p也带来巨大的出战流量。无疑,对于网络管理者来说,监视和控制网络中间的p2p流量成了一个很紧迫而且头疼的问题。针对此种情况,广大运营商提供多种策略来解决由于p2p应用造成的网络拥塞。最简单的解决方法就是增加中继带宽。实际运营表明:增加带宽确实在短时间内能缓解网络的拥塞情况,但是当p2p应用觉察到网络中有更多的可用带宽网络带宽将会再度被p2p应用占据。这样以来,用于增加带宽的费用将是个“无底洞”,因为这样做只是给那些p2p应用提供了更多可获取的带宽资源。企业网络也面临同样的两难处境,即是否采用升级其internet连接链路的办法来缓解网络的拥塞情况。若是用户不理解这种通信行为,还会增加用户的抱怨。总体说来扩容网络是带宽拥塞时运行维护网络的传统做法,但在当前网络发展的形势下,这种传统做法已不能根本解决问题,扩容后的网络资源会迅速被p2p流量占用,并且扩容带来的运营成本压力最终会使运营商严重亏损,网络质量降低,形成恶循环。传统的网络级防火墙(包过滤)都是工作在osi模型的第2、3或者4层,通过基于数据包的源/目的ip地址、mac地址、tcp/udp端口等进行过滤,监视网络流量。一般来说,不保持前后连接信息,过滤决定只是根据当前数据包的包头来做的。这样的设计带来的问题是,缺少对应用层(osi模型的第7层)流量的分析,因此也无法比较出正常的http流量和p2p下载的流量区别。随着网络的发展,网络应用的增多,越来越多的应用使用动态端口,再加上近年来很多应用都透过web端口80进行,采用传统的方法已经无法对数据包进行准确有效的识别和控制。尽管很多企业网络的管理者知道在他们的网络上运行有p2p下载应用,但他们通常没有工具去发现这些流量,因此也不会了解p2p下载对他们管理的网络带来的冲击。造成这种问题的原因有很大一方面来自p2p下载使用的通讯机制。p2p下载使用了动态端口,同时将本身的流量伪装成为http流量。这种与生俱来的特性源于p2p程序的防御机制。使用这种机制后,p2p下载流量很难被防火墙、路由器以及其他的过滤设备发现。为了识别和管理p2p下载流量,必须使用基于第7层流量的分析工具。1.4 本文主要研究内容全文共分6个部分。第一章简述了p2p的基本概念、发展和特点,p2p流量控制的国内外研究现状及其研究的背景以及意义和论文结构。第二章本章详细分析了linux2.4.x中防火墙框架netfilter。netfilter提供的是一套hook框架,其优势是就是易于扩充。可供扩充的netfilter构件主要包括table、match、target和connection tracking/nat四类,分别对应四套扩展函数。第三章主要论述了 p2p 网络的主要网络模型和工作原理,对目前常见的几种p2p协议进行分析,并分别提出了应用层识别的方法。第四章实现了一个p2p流量控制系统,作者通过p2p协议分析的结果扩展linux netfilter框架,开发出p2p协议识别分类器,并逐个协议进行测试确保其分类工作准确无误,最后结合linux的qos工具tc,可以实现对p2p流量的带宽管理。第五章对全文进行总结并对将来的研究工作作了进一步地展望。73第二章 p2p网络及p2p协议分析p2p网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的物理节点中逻辑上具有相同的地位,而并非处理能力的对等。以napster软件为代表的p2p技术,其实质在于将因特网的集中管理模式引向分布管理模式麻将内容从中央单一节点引向网络的边缘,从而充分利用因特网中众多端节点所蕴涵的处理能力和潜在资源。相对于传统的集中式客户/服务器(c/s)模型,p2p弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既请求服务也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。p2p系统最大的特点就是用户之间直接共享资源,其核心技术就是分布式对象的定位机制,这也是提高网络可扩展性、解决网络带宽问题的关键所在。迄今为止,p2p网络已经历了三代不同的网络模型,各种模型各有优缺点,有的还存在本身难以克服的缺陷。因此,各种网络结构依然能够共存,甚至呈现相互借鉴的情况。2.1 p2p的基本概念2.1.1 p2p的定义目前学术界、工业界对p2p没有统一的定义,公认较权威的定义1有:(1) peer-to-peer is a type of internet network allowing a group of computer users withthe same networking program to connect with each other for the purposes ofdirectly accessing files from one anothers hard drives.(2) peer-to-peer networking is an application that runs on a personal computerand shares files with other users across the internet. p2p networks work by connecting individual computers together to share files instead of having to gothrough a central server.(3) p2p是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(server),又是资源(服务和内容)获取者(client)。这些定义虽然不同,但是有一个统一的认识:p2p不同与以往的服务器/客户机机构的主从网络,它是一种对等网络技术。p2p彻底颠覆了传统的客户端/服务器(c/s)模型,它不再区分客户端、服务器,而是让每台参与到 p2p 网络中的机器既能像客户端一样享受服务,又能像服务器一样提供服务,每台机器称作 p2p 网络中的一个对等点(peer)。p2p网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的物理节点在逻辑上具有相同的地位,而并非处理能力的对等。节点之间可以直接交换资源和服务而不必通过服务器。2.1.2 p2p的特点作为一种新兴的热门技术,与其它网络模型相比,p2p具有以下特点7:(1)分散化网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。即使是在混合中,虽然在查找资源、定位服务或安全检验等环节需要集中式服务器的参与,但主要的信息交换最终仍然在节点中间直接完成。这样就大大降低了对集中式服务器的资源和性能要求。(2)可扩展性在传统的架构中,系统能够容纳的用户数量和提供服务的能力主要受服务器的资源限制。为支持互联网上的大量用户,需要在服务器端使用大量高性能的计算机,铺设大带宽的网络。为此机群、等技术纷纷上阵。在此结构下,集中式服务器之间的同步、协同等处理产生了大量的开销,限制了系统规模的扩展。而在网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。即使在诸如napster等混合型架构中,由于大部分处理直接在节点之间进行,大大减少了对服务器的依赖,因而能够方便地扩展到数百万个以上的用户。而对于纯p2p来说,整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。(3)健壮性在互联网上随时可能出现异常情况,网络中断、网络拥塞、节点失效等各种异常事件都会给系统的稳定性和服务持续性带来影响。在传统的集中式服务模式中,集中式服务器成为整个系统的要害所在,一旦发生异常就会影响到所有用户的使用。而架构则天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。而且p2p模型一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。事实上,p2p网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。一些p2p模型还能够根据网络带宽、节点数、负载等变化不断地做自适应式的调整。(4)隐私性随着互联网的普及和计算存储能力飞速增长,收集隐私信息正在变得越来越容易。隐私的保护作为网络安全性的一个方面越来越被大家所关注。目前的internet通用协议不支持隐藏通信端地址的功能。攻击者可以监控用户的流量特征,获得ip地址。甚至可以使用一些跟踪软件直接从正地址追踪到个人用户。在p2p网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众internet多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在p2p中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。(5)高性能性能优势是p2p被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。而在目前的互联网上,这些普通用户拥有的节点只是以客户机的方式连接到网络中,仅仅作为信息和服务的消费者,游离于互联网的边缘。对于这些边际节点的能力来说,存在极大的浪费。采用p2p架构可以有效地利用票联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。这与当前高性能计算机中普遍采用的分布式计算的思想是一致的。但通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。2.1.3 相关概念下面将本文用到的比较频繁的相关专业术语在此做简要介绍:(1)qos(quality of service,服务质量) qos旨在针对各种应用的不同需求,为其提供不同的服务质量,例如:提供专用带宽、减少报文丢失率、降低报文传送时延及时延抖动等。为实现上述目的,qos提供了下述功能:报文分类、网络拥塞管理、流量控制和流量整形、qos传输协议。qos可以控制各种网络应用和满足多种网络应用要求,如:控制资源、可裁剪服务和多种雪球并存。(2)带宽管理带宽管理的基本原理是充分运用qos技术中间定义的流量控制和流量整形来实现的。带宽管理产品将有限的带宽人为的划分成多个动态通道,将各个业务流控制在各自得通道中间,来保证各个业务流之间不相互干扰。因此,带宽管理产品关注的首要焦点是保护每一个动态通道中的业务流不受其他通道中业务流突发的影响。2.2 p2p主要网络模型2.2.1集中式p2p网络模型集中目录式p2p网络模型是最早出现的p2p应用模型。由于它仍然是具有中心化的特点,因而也被称为非纯粹的p2p结构。其用户注册与文件检索过程类似于传统的c/s模式,区别在于所有资料并非存储在服务器上,而是存储于各个节点中。查询节点则根据网络流量和延迟等信息选择合适的节点建立直接连接,而不必经过中央服务器进行。这种网络结构非常简单,但是它显示了p2p系统信息量巨大的优势和吸引力。目前集中式p2p模型最典型的代表是napster。在这种结构中, 有一批专门的高性能服务器充当中央索引节点, 这些节点保存着当前活动节点的地址信息及其共享资源信息。当一个节点加入p2p系统时,就把它存储的共享资源的名单发送给中央索引节点。当某个节点请求一个文件时就向中央索引节点发送查询消息, 中央索引节点随即在它保存的索引文件列表中寻找拥有该文件的节点,然后就将这些节点的ip地址和端口号返回给请求用户。同时, 中央索引节点会查找与请求结点匹配最佳的对等节点(最佳对等结点可能是速度最快、代价最低、延迟最小、用户最容易得到的对等者,最佳的具体定义是该p2p软件开发者预先设计的)。之后,用户与最佳对等者之间直接点对点地传送文件,而不再通过中央索引节点。其原理如图2-1所示。图2-1集中式p2p网络系统集中式p2p系统的优点是查询效率高, 带宽占用较低, 只需要一条消息就可以解决一个查询。但其缺点也很明显:(1)中央索引节点容易受到攻击,而且一旦瘫痪容易导致整个网络的崩溃,可靠性和安全性较低。(2) 随着网络规模的扩大,对中央索引节点进行维护和更新的费用将急剧增加,所需成本过高。(3) 中央索引节点的存在引起共享资源在版权问题上的纠纷。2.2.2分布式p2p网络模型广播式p2p模型也被称作为纯p2p模型。这种模型取消了集中的中央服务器,每个用户随机接入网络,并与自己相邻的一组节点通过端到端连接,从而构成一个逻辑覆盖的网络。对等节点之间的内容查询和内容共享都是直接通过相邻节点广播接力传递,同时每个节点还会记录搜索轨迹,以防止搜索环路的产生。在这类系统中没有中央索引服务器, 节点仅仅通过本地信息决定要连接到网络的哪个部分上,也没有在网络的任何地方做类似广告之类的资源信息发布, 它对共享文件的搜索是通过向网络广播查询消息来完成的。其工作原理如图2-2所示。当一个节点需要搜索某种资源时, 就向它所有的邻居节点广播带有非零ttl的查询消息, 邻居节点收到消息后先检索自己的共享文件, 如果有,就把自己的ip地址和找到的文件信息回传给查询节点,如果没有,就把查询消息中的ttl值减1,然后再向其它邻居结点转发这条查询消息, 如此反复执行,直到ttl值为零或找到目标文件为止,目前分布式p2p网络模型最典型的代表就是gnutella。图2-2 分布式p2p网络系统分布式p2p网络模型的优点是结构简单,投资少,不需要昂贵的中央结点服务器,而且结点的保密性很好,能有效地保护用户的隐私,因此受到广泛的欢迎,但其缺点也不少,由于没有中心管理者,对等点的查找和定位比较复杂, 安全性也不高,易遭受恶意结点的攻击。另外,随着网络规模的扩大,用广播方式查找网络上的文件资源将造成网络流量急剧增加,易导致网络拥塞。2.2.3混合式p2p网络模型集中式p2p模型有利于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的打击,分布式p2p形式解决了抗攻击问题,但是又缺乏快速搜索和可扩展性。混合p2p形式结合了集中式和分布式p2p形式的优点,在设计思想和处理能力上都得到了近一步的优化。混合式p2p在分布式模式的基础上,将用户节点按能力进行分类,使某些节点担任特殊的任务12。其工作原理如图2-3所示。useruseruseruseruseruseruseruseruserusersearchindex4321searchdownload图2-3 混合式p2p的工作原理其系统机构中共包含3中节点:(1) 用户节点普通的节点就是用户节点,它不具有任何特殊的功能。 (2) 搜索节点 搜索节点处理搜索请求,从他们的孩子节点中搜索文件列表,这些节点必须有128kbit/s以上的网络连接速度,因此,最好用高性能的处理器。(3) 索引节点对于连接速度快、内存充足的结点可以作为索引结点。索引结点保存可以利用的搜索结点信息、搜集状态信息以及尽力维护网络的结构。一个结点可以既是搜索结点又是索引结点。用户结点可以选择3个搜索结点作为它的父结点,如果父结点接受该用户结点作为它的孩子的话,那么该用户结点就可以提交它要共享的列表给它的父结点。缺省情况下,搜索结点可以最多维护500个孩子结点。在第三代p2p的软件体系结构中,采用了混合p2p形式。这种形式的关键之一是引入了索引结点,索引结点不会直接连接到有版权的资料,它就像yahoo一样,只是搜索和所需资料相关的地址,至于用户到底连接下载了什么内容和它无关。这种形式的关键之二是引入搜索结点,搜索结点管理着所属用户的文件列表。用户结点通过索引结点获得搜索结点信息,之后用户结点就与获得的搜索结点相连,每一次查询都通过该搜索结点进行。当用户发出搜索请求后,如果和用户结点直接相连的搜索结点查询结果为100个(这里的100个搜索结果,可以由用户自己来设定)就停止,如果不足100个,就向相邻的搜索结点发出请求,如果查询结果还不够,就继续向外快速发散,直到所有得搜索结点都被搜索到。而如果所有的搜索结点都被访问过,就意味着整个网络上的结点都被搜索到了,其速度要比纯 p2p 模式快得多。可见,p2p系统在不断地发展着,从最初流行的像napster这样有一个中心服务器的第一代集中式p2p,到像gnutella没有中心服务器的第二代纯p2p,再到没有中心服务器,而有分布式服务器的第三代混合p2p。随着网络带宽和计算能力的进一步提高,p2p模式的系统结构将会更加智能化、更加具有灵活性,以便提供更多的共享资源为人们所利用。2.3 常见p2p协议分析本文的协议分析基于识别数据包应用层的确定比特字符串。因为关于p2p协议分析的文档非常缺乏,本文主要采用实验抓包分析的方法,并参考一些权威的p2p官方网站,得出结论。在安装了各种p2p客户端后,运行客户端程序并使用嗅探器tcpdump和ethereal抓包,经过分析得出几种常用的p2p协议的应用层特征字符串,见表2-1。表2-1 p2p协议数据包净荷开头的字符串p2p protocolstringtransferprotocoldefaultportsedonkey20000xe3 0xc5tcp/udp4661-4665fastrack“get/.hash”, “give”0xc028,0x2700000029800x280000002900,0x2900000029010xc1(5 bytes),0x2a(3 bytes)tcpudpudp1214gnutella“gnutella”, “giv”“gnd”tcpudp6346-6347bittorrent“0x13bittorrent protocol”tcp6881-6889后面将从两个方面对4种最流行的p2p协议进行分析:(1) 数据包的格式:每种p2p协议的控制包通常都能通过检查它的tcp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论