大学毕业论文linux环境下p2p流量控制系统的研究与实现Word格式文档下载.docx
《大学毕业论文linux环境下p2p流量控制系统的研究与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大学毕业论文linux环境下p2p流量控制系统的研究与实现Word格式文档下载.docx(74页珍藏版)》请在冰豆网上搜索。
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;
学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;
学校可以采用影印、缩印、数字化或其它复制手段保存论文;
在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
日期:
导师签名:
日期:
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
摘要
随着计算机技术和互联网技术的迅速发展,学校、企业等各种机构的许多关键业务越来越依赖于互联网,但是许多与事物无关的网络应用占去了绝大部分带宽,导致关键业务相应时间过长,使正常网络的运行受到严重影响。
特别是现在P2P技术飞速发展,P2P下载软件无限制的占用带宽资源,它们使用动态端口,同时又伪装成HTTP流量,很难被防火墙、路由器以及其它过滤设备发现。
传统的网络级防火墙(包过滤)都是通过源/目的IP地址、MAC地址、TCP/UDP端口等进行过滤,缺少对应用层流量的分析,因此无法识别并控制P2P下载的流量。
本文中作者提出了一种基于Linux内核扩展模块的P2P数据识别和控制的方法,通过Linux系统防火墙框架Netfilter连接跟踪机制来跟踪所有的连接并判断每个包属于哪个连接。
作者通过扩展Netfilter/Iptables框架,可以根据应用层数据来识别P2P连接,并且可以通过设置合适的防火墙过滤规则来管理P2P流量。
此方法可以完全禁止不想要的P2P流量,还可以和LinuxQos工具一起使用来限制P2P的带宽占用,合理分配网络资源,从而提高网络性能。
本文开发的P2P流量控制系统,基于应用层分析技术识别各种P2P流量,可以限制或者禁止P2P下载,也可以利用Linux流量控制技术将P2P下载的流量控制在某个范围内。
总之,本文对于网络中间存在的P2P下载提供了很好的监视和控制解决方案,使用的应用层分析技术也可让网络管理者对网络资源的应用分布情况得到充分的了解和认知。
关键词:
P2P带宽管理防火墙包过滤LinuxNetfilter/Iptabl
ABSTRACT
WiththerapiddevelopmentofcomputertechnologyandtheInternettechnology,moreandmorecriticalapplicationsofvariousorganizations,e.g.enterprisesandschools,dependontheInternet,butamajorityofbandwidthisoccupiedbythosenetworkapplicationsfarawayfromthenormaltransactions.Thesefactsleadtoalongresponsetimeofcriticalapplicationsandharmthenetworkperformanceseverely.Inparticular,withtherapiddevelopmentofP2Ptechnology,P2Psoftwaresfordownloadandfiletransfer,takingbandwidthresourcesunlimited.ThesesoftwaresusedynamicportsandmasqueradeitstrafficsasHTTPtraffics,whichmakesthemhardtobeidentifiedbythefirewalls,routersandotherfilteringmachines.
Traditionalpacketfilteringfirewallsgenerallybasedonthesource/destinationIPaddress,MACaddressorTCP/UDPportnumbersinthepacketheaders.Thus,theyareunabletoidentifytheP2Pdownloadtrafficsfortheirincapabilityofapplicationlayerdataanalysis.
ThisthesispresentsamethodofP2PtrafficidentificationandcontrolbasedonLinuxkernelexpandedmodel.LinuxNetfilterconnectiontrackingmechanismisinchargeoftrackingalltheconnectionsandjudgingtowhichconnectioneverypacketisrelated.ThroughextendingtheNetfilter/Iptablesframework,theidentificationofP2Pconnectionaccordingtotheapplicationlayerdataisachievedandthroughsomeappropriatefirewallfilterrules,theP2Ptrafficmanagementcouldalsosucceeds.ThismethodcouldtotallyprohibitundesirableP2Ptraffic,andaswellcouldrestrictP2PbandwidthusagetogetherwithLinuxQoStools.Thus,thenetworkresourcescouldbealleviatedandtheperformancebeenhancedlargely.
ThisP2Ptrafficcontrolsystembasedonapplicationlayeranalysistechnology,couldprohibitP2Pdownload,andalsocouldrestricttheP2PdownloadtraffictoapredefinedscopeusingLinuxtrafficcontrolmechanism.Inconclusion,thisthesisprovidesaverygoodsolutionforthemonitororcontrolofP2Pdownloadinaninternalnetworkenvironment.
Keywords:
P2P,BandwidthManagement,Firewall,PacketFiltering,LinuxNetfilter/Iptable
目录
摘要Ⅰ
ABSTRACTⅡ
目录Ⅲ
第一章绪论1
1.1P2P概述1
1.2国内外研究现状1
1.3课题背景及研究的意义2
1.4本文主要研究内容3
第二章P2P网络及P2P协议分析.....5
2.1P2P的基本概念5
2.1.1P2P的定义5
2.1.2P2P的特点6
2.1.3相关概念8
2.2P2P主要网络模型8
2.2.1集中式P2P网络模型...............................................................................8
2.2.2分布式P2P网络模型...............................................................................9
2.2.3混合式P2P网络模型..............................................................................10
2.3常见P2P协议分析............................................................................................................12
2.3.1eDonkey2000..........................................................................................13
2.3.2Fasttrack...............................................................................................14
2.3.3Gnutella................................................................................................14
2.3.4BitTorrent..............................................................................................15
2.4本章小结.....................................................18
第三章Linux内核防火墙框架Netfilter.................................................................19
3.1Linux2.4内核防火墙机制.......................................19
3.2Netfilter基础.................................................21
3.2.1Netfilter框架结构...........................................21
3.2.2Netfilter工作原理.........................................21
3.2.3包选择工具Iptables22
3.2.4连接跟踪ConnectionTracking24
3.3NETFILTER的编程接口24
3.3.1Netfilter内核模块分析24
3.3.2用户空间参数传递分析27
3.4IPTABLES的实现及扩展29
3.4.1IPTables核心数据结构29
3.4.2IPTables的扩展33
3.5连接跟踪/网络地址转换的实现及扩展38
3.5.1连接跟踪/地址转换在各检查点上调用的函数38
3.5.2连接跟踪的重要数据结构和工作流程39
3.5.3连接跟踪/地址转换的扩展43
3.6本章小结46
第四章基于内核扩展模块的P2P流量控制的实现47
4.1系统总体思想47
4.2P2P协议应用层识别的实现47
4.3P2P协议识别的测试50
4.3.1搭建测试环境50
4.3.2对P2P-BT协议识别的测试51
4.3.3对P2P-GUNTELLA协议识别的测试54
4.3.4对P2P-eDonkey协议识别的测试55
4.3.5对P2P-Fasttrack协议识别的测试56
4.4带宽管理的实现58
4.4.1流量管理的原理58
4.4.2流量管理功能的设计61
4.4.3流量管理功能的应用64
4.5本章小结69
第五章总结与展望70
5.1总结................................................................................................................70
5.2展望................................................................................................................70
致谢72
参考文献73
第一章绪论
1.1P2P概述
P2P技术最早可以追溯到USENET[2]的出现,但那个时候使P2P成为互联网杀手级应用的条件还不具备,所以直到1999年Napster[3]的出现才能算是P2辉煌历程的开始。
一个互联网应用要出现并成为杀手级应用必须具备两个条件:
互联网上现有设备的支持和网络用户的强烈需求。
随着互联网的发展,用户之间相互通信、交换资源的需求越来越强烈,而用户终端的计算性能也遵循摩尔定律[4]飞速发展,现在个人用户的台式机或笔记本性能已经非常强大,网络带宽也足以支持P2P计算所需要的带宽要求,这些条件都为P2P的出现奠定了坚实的基础。
1998年18岁的肖恩.范宁写下一个叫Napster的程序,1999年该程序成了互联网上的杀手级应用――它令无数散布在互联网上的音乐爱好者美梦成真,Napster网络最高峰时有8000万注册用户。
CacheLogic2004年底对互联网流量进行了统计[5],发现P2P流量从1999开始出现,此后一路飚升,短短5年之后便占据互联网总流量的60%,可见其发展之迅猛。
CacheLogic经过研究后[6]得出三个结论:
P2P已经是ISP网络的最大消费者;
P2P流量已经大大超过web流量;
P2P流量还在继续增长。
1.2国内外研究现状
目前,国内对于P2P技术的研究和应用非常多,但是对于P2P的流量识别和控制方面的研究却非常之少,尤其是在P2P流量的控制方面的文章几乎很难找到。
现在可以在网上找到一些P2P流量监控方面的软件。
国内一些网络设备厂商也推出了这方面的产品。
例如华为的SecPath1000F防火墙和Eudemon500、1000防火墙、CAPTECH的网络管理软件—网络慧眼,以及畅讯通信的产品QQSG。
这些产品采用的主要技术都是深度数据包检测技术。
国外大多采用深度检测技术来发现P2P流量,从而控制P2P流量,或是使用缓存技术来实现对P2P流量的控制。
国外也有一些关于这方面的产品。
例如Cisco公司PIXFirewall,CacheLogic公司P2P流量管理解决方案。
1.3课题背景及研究的意义
随着Internet在中国的迅速发展,P2P应用正在逐渐占据互联网业务中举足轻重的地位。
P2P不同与以往的服务器/客户机构的主从网络,它是一种对等网络技术。
发展经历了从第一代的P2P应用,像Napster,Gnutella,Kazaa到第二代的BitTorrent,并逐渐成熟起来。
当今P2P的应用已经是非常普遍的事情,然而P2P的广泛应用着实让我们宽带运营商感到十分为难,因为这类对带宽的需求在理论上是无止境的,它们会使原来运行流畅的网络变得越来越拥塞,同时还极大改变了网络上的流量模型,并且将运营成本提高30%甚至更高。
互联网的开放性使得大量的互联网增值业务可以迅速开发和部署,自从2002年BitTorrent[8]技术产生以来,迅速成为了互联网上高效、便捷的下载工具,目前,根据主流运营商的统计,大约50%-70%的带宽被P2P流量所占据[9-11]。
P2P的出现让上网用户在下载各种软件、电影等大块头数据时,体验到了飞一样的速度。
然而,由于P2P绕过服务器,整个过程中缺乏有效的管理,也存在大量问题,例如:
知识产权问题,安全性问题,大量垃圾冗余信息,以及严重占用带宽的问题。
尤其对于企业网络来说,这种基于P2P技术的文件共享对运行在其中的企业级应用,如ERP、CRM、VoIP等,造成巨大的冲击。
其危害主要可归纳为下面几方面:
(1)改变了网络流量分布
(2)网络流量不可预知性(3)网络拥挤,造成关键业务明显延迟(4)P2P下载造成很大的入站流量(5)充当上载服务器,P2P也带来巨大的出战流量。
无疑,对于网络管理者来说,监视和控制网络中间的P2P流量成了一个很紧迫而且头疼的问题。
针对此种情况,广大运营商提供多种策略来解决由于P2P应用造成的网络拥塞。
最简单的解决方法就是增加中继带宽。
实际运营表明:
增加带宽确实在短时间内能缓解网络的拥塞情况,但是当P2P应用"
觉察"
到网络中有更多的可用带宽网络带宽将会再度被P2P应用占据。
这样以来,用于增加带宽的费用将是个“无底洞”,因为这样做只是给那些P2P应用提供了更多可获取的带宽资源。
企业网络也面临同样的两难处境,即是否采用升级其Internet连接链路的办法来缓解网络的拥塞情况。
若是用户不理解这种通信行为,还会增加用户的抱怨。
总体说来扩容网络是带宽拥塞时运行维护网络的传统做法,但在当前网络发展的形势下,这种传统做法已不能根本解决问题,扩容后的网络资源会迅