毕业设计论文基于PPPoE的NAT设计与实现.doc
《毕业设计论文基于PPPoE的NAT设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于PPPoE的NAT设计与实现.doc(25页珍藏版)》请在三一办公上搜索。
1、毕 业 论 文(设计)论文(设计)题目:基于PPPoE的NAT设计与实现系 别: 专 业: 学 号: 姓 名: 指导教师: 时 间: 毕 业 论 文(设 计) 开 题 报 告系别:计算机与信息科学系 专业:网络工程学 号姓 名论文(设计)题目基于PPPoE的NAT设计与实现命题来源教师命题 学生自主命题 教师课题选题意义(不少于300字):本选题的目的是开发汇集多个帐号带宽的NAT网关。随着计算机网络的普及化,越来越多的人接入因特网,通过因特网来获取信息及通信,造成了IPv4的地址出现了严重不足的情况。此时,NAT技术应运而生,此技术能让多台计算机共享一个或多个公网IP地址,从而暂时解决了IP
2、地址紧缺的困境,不仅如此,NAT技术也能隐藏内部的网络结构使得内网更安全。其次,以太网是当今使用最广泛的局域网技术,基于以太网的Internet接入也有很多,最常见的方式就是采用PPPoE协议,通过帐号登陆来连接ISP,然后ISP分配一个公网地址给客户,接着客户就能使用此公网IP与因特网的计算通信了。所以,基于PPPoE的NAT代理服务器能使多台以太网上的计算机共享一个帐号,以充分利用网络的带宽,在设计成支持多帐号登陆的模式下,便能汇集多个帐号的宽带,更好地使用网络资源。研究综述(前人的研究现状及进展情况,不少于600字):NAT(Network Address Translation)技术是
3、一种将私有地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。Internet地址分配委员会(IANA) 规定了3个保留用的私有地址:10.0.0.0-10.255.255.255、172.16.0.0-172.31.255.255、192.168.0.0-192.168.255.255,这些地址不会在因特网上被分配,只能在局域网中使用。这不仅完美地解决了IP地址不足的问题,还能够有效地避免来自于网络外部的攻击,隐藏和保护网络内部的计算机。从功能上看,NAT技术分为四大类:1、传统NAT,此方式的NAT只允许内部网络的主机主动申请建立连接,会话只
4、能是由内向外,传统的NAT又包含有两种类型:基本NAT、NAPT,基本NAT拥有多个公开的IP,当内部网络的主机向外部发起会话请求时,基本NAT把内部网络中外出IP数据的源IP转换成外部的IP地址,而NAPT不仅会翻译IP地址,也会对传输层的端口号进行转换,它允许多台内部主机共享一个公网IP,NAPT是市场上使用最多的。2、双向NAT,此种方式的NAT既能从内部网络向外部网络发起会话,又能从外部网络向内部网络发起会话请求。当在外出或进入任何一个方向上建立连接时,把内部网络地址静态或动态绑定到全局唯一的址上。3、两次NAT,这是NAT的一个变种,它同时修改源和目的地址,在内部编址域和外部编址域存
5、在冲突时非常有用。4、多宿主NAT,为了让一个内部网络能够在某个NAT链路发生故障的情况下,也能够保持与外部网络的连通性,通常希望内部网络到相同或不同的ISP具有多条连接(多宿主的),希望经过相同或不同的NAT设备。现在使用最多的仍然是传统NAT设备,尤其是NAPT设备,传统NAT的映射方式为(内部地址,端口)与(外部地址,端口),有两种类型:1、对称型,把所有来自相同内部IP和端口号,到特定目的IP和端口号的请求映射到相同的外部IP地址和端口号,它不保证所有会话中的(私有地址,私有端口)有(公网IP,公网端口)之间绑定的一致性,而是为每个新的会话分配一个新的端口号。2、克隆型,又再细分为三大
6、类:Full Cone、Restricted Cone、Port Restricted Cone。Full Cone会把所有来自相同内部IP和端口的请求都映射到相同的外部IP的端口,Restricted Cone只有当内部主机以前曾经给IP地址为X的外部主机发送过数据包时,外部主机X才能够把数据包发送给此内部主机,Port Restricted Cone与Restricted Cone类似,只是多了端口的限制。在以太网环境下,Windows操作系统本身针就对家庭网络或小型的Interanet网络提供了一种Internet连接共享服务:ICS,从广义上讲,ICS也是使用了NAT技术,相当于NAT
7、的简化版,用ICS无需理解IP地址和路由方面的一些知识,但它不允许局域网和Internet主机之间所有的IP通信,并且只能使用单一的公网IP地址,如果能在Windows上实现一个基于PPPoE拨号的NAT,使之支持共享多个公网IP地址,也就能同时登陆多个帐号,并它们的带宽汇集起来。研究的目标和主要内容(不少于400字)本选题对PPPoE协议和NAT技术进行研究及分析,在Windows平台上实现了一个PPPoE的NAT服务器,允许同时登陆多个帐号,能汇集所有帐号的流量。本选题研究内容如下:(1) 对整个NAT代理的结构及模块进行分析设计,虽然核心内容是NAT代理,但是由于PPPoE位于链路层之上
8、,而NAT占居网络层、传输层,故整个代理程序要分为几个模块,在PPPoE登陆获取公网IP地址之后,才进入NAT代理状态。(2) 根据分模块的设计思想,主要的模块有如下几个:1、以太帧收发模块:原始以太帧的收发一般都是通过驱动来完成的,Windows平台下的网络构架遵循NDIS规范,这里用的是位于NDIS协议层的WinPcap,WinPcap能截获所有流经网卡的数据包,它封装了以太帧收发的函数,屏蔽了系统底层对网络的操作,对于研究、实现底层协议十分有用。2、网卡模拟模块:模拟出多个网卡,每个网卡只能接入MAC地址为广播地址及本网卡地址的以太帧,对收到的以太帧缓存在起来再进行处理。3、PPPoE模
9、块:由于是基于PPPoE的NAT代理设计,故须实现PPPoE的核心部分:PPPoE的用户登陆、PPPoE的协议流程、PPPoE帧的数据结构。每个虚拟出来的网卡都包含有一个PPPoE的结构体,其中主要保存着PPPoE的Session ID、ISP分配的公网IP。4、NAT模块:采用Full Cone型的NAPT,把所有来自相同内部IP和端口的请求都映射到相同的外部IP的端口,以更易于兼用其它的P2P下载软件。NAT模块还包含有TCP/IP的部分内容,实现了IP层中对IP的分片及重组、对ICMP数据报文的处理等。5、内存管理模块:如果每次接收或发送以太帧的时候都使用系统的内存操作函数分配内存的话,
10、会造成内存碎片,也会导致整个NAT性能上的下降。这里设计了两个内存池,一个用于对以太帧的收发,而另一个则用于对IP分片及其它数据结构的保存。拟采用的研究方法a)查找并阅读相关资料,了解基本的内容,利用需求分析文档,对整个系统有个初步的架构。b)搜寻实验用的文件文档集和研究过程中用到的各种工具软件。c)根据已有的资料并利用模块化的思想对整个NAT代理程序进行建模及分块设计d)采用VC+6.0开发工具完成整个程序的编写并在Windows上进行测试。研究工作的进度安排2010年11月29号12月15号 与指导老师沟通交流,完成毕业论文选题。2010年12月16号12月30号 搜集资料,查阅文献,完成
11、开题报告。l2011年01月01号01月08日 完成文献综述l2011年01月09号02月25号 定出办公自动化系统的需求分析文档l2011年02月26号04月25号 整理相关资料并完成概要和详细设计l2011年04月26号05月01号 进行编码工作及过程中的必要性测试l2011年05月02号05月16号 后期的联机调试和测试l2011年05月17号05月31号 总结毕业设计的整个过程,完成毕业设计论文。参考文献目录(作者、书名或论文题目、出版社或刊号、出版年月日或出版期号)1 王艳平.Windows 网络与通信程序设计(第2版)M.北京:人民邮电出版社,2009:12.2 赵雪峰.基于PPP
12、oE/PPP协议的带宽接入客户端拨号软件的实现D.中国地质大学.2005:22-26.3 RFC2516, A Method for Transmitting PPP Over Ethernet (PPPoE)S. Network Working Group.1999.24 邹航,杨元晔,苟光磊.NAT网络地址转换技术分析J.重庆工学院学报.2007.21(7):89-91.5肖辽亮.NAT-PT簇负载平衡的设计与实现J.计算机技术与发展.2006.16(3):80-82.6王南,孙保锁,王月平.P2PSIP系统中NAT穿越方案的研究与设计J.计算机技术与发展.2009.19(10):66-6
13、9.7 RFC3022, Traditional IP Network Address TranslatorS,Jasmine Networks,2001.8 郭士秋, IP协议体系M.北京:电子工业出版社,2002:71-76.9 W. Richard Stevens美.范建华,张涛等译.TCP/IP详解 卷1:协议M.北京:机械工业出版社.2007:33-34.10 Politecnico di Torino. WinPcap DocumentationA, 2002.11 罗军舟,黎波涛,杨明,吴俊等,TCP/IP协议及网络编程技术M.北京:清华大学出版社,2004:22-26.12 D
14、ouglas E.Comer美.林瑶,蒋慧,杜蔚轩等译.用TCP/IP进行网际互联(第一卷:原理、协议与结构)(第四版)M.北京:电子工业出版社, 2001:219-221.指导教师意见同意开题 签名: 年 月 日教研室主任意见同意开题 签名: 年 月 日目录摘要1关键词1引言11 底层实现11.1 NAT总构架11.2 Windows网络驱动41.3 网络I/O41.4 内存管理62 TCP/IP协议栈72.1 ARP协议72.2 NAT对传输层的影响92.3 IP分片及重组92.4 网络字节顺序113 PPPoE协议123.1 PPPoE发现阶段123.2 PPPoE会话阶段124 流量汇
15、聚实现154.1 关于流量的汇聚154.2 实现方案154.3 转换超时175 测试176 小结17参考文献18Abstract19Keywords19致谢20附录2119基于PPPoE的NAT设计与实现计算机与信息科学 网络工程专业 指导教师 摘要PPPoE技术使得已有的以太网能方便地实现宽带接入和计费功能,但Windows操作系统内置的PPPoE及ISP模块只支持用户单帐号登录,用户即使登录多个宽带帐号,再开启系统的宽带共享功能,也只能共享一个帐号的带宽。为解决这一问题,使用户能够在多帐号的状态下实现高速数据传输,本文在PPPoE的基础上,设计并实现了一个可以汇聚多个帐号带宽的NAT系统。
16、实验结果表明,运行该系统时,用户登录帐号越多,链路带宽越大,实现了汇聚多帐号带宽的功能,为用户和ISP实现高速接入提供了另外一种途径。关键词PPPoE;NAT;Windows NDIS;WinPcap;TCP/IP;带宽汇聚引言无论是PPPoE(PPP Over Ethernet,基于以太网的PPP)还是NAT(Network Address Translation,网络地址转换)技术,都是当今使用最广泛的局域网宽带接入技术,在Windows操作系统中,这两种技术都已内置,但缺点就是不能同时登陆多个宽带帐号来汇聚网络带宽,这在需要一些高速下载或上传而又没有能力升级现有带宽的网络系统中是满足不了
17、用户需求的。因此,我们设计并且实现了一种能汇集多个帐号带宽的NAT系统,从而使用户既可以达到高速下载或上传的目的,又不用浪费更多的时间和精力去升级现有网络硬件系统以达到扩大网络带宽的目的,同时也为ISP(网络服务提供商)在为用户提供网络服务时开辟了一个新的思路。1 底层实现1.1 NAT总构架总框架图如下所示,在整个程序框架在,设计了两种称为“虚拟网卡”的结构体: PC 1 PC 2 PC 3 PC 4ONIC INIC 内网网关 VNIC_Proc()PPPoE服务器图1 NAT总体框架第一种为ONIC(外网网卡),每个帐号都需要一个ONIC,一旦登录成功后,ONIC就相当于与AC有了虚拟的
18、连接,ONIC里面包含了同AC进行会话时所必需的参数,以及为了便于NAT转换而设计的另外变量,流向ONIC的IP数据包有可能被转发至内网。/* 用户名/密码的最大长度 */#define AC_PAP_LOGIN_MAX_LEN32/* AC信息的最大长度如:AC名等 */#define AC_INFO_MAX_LEN1024typedef struct _ONICstruct _ONIC*pNext;/* 用户名及密码 */charUserAC_PAP_LOGIN_MAX_LEN;charPassWordAC_PAP_LOGIN_MAX_LEN;/* 用户登录后,AC分配的网络配置信息 */
19、unsigned intODNS_Primary;/ 主DNS服务器unsigned intODNS_Second;/ 备用DNS服务器unsigned intOIP;/ 公网IPunsigned charOMAC6;/ ONIC的MACunsigned shortOMTU;/ ONIC的MTUunsigned shortOMSS;/ ONIC的MSSunsigned shortOOffset;/ 为了便于对IP层以上的数据进行分片而设/ 作偏移用,OOFFSet = (OMSS/8)/* AC的主要信息 */unsigned intAC_IP;/ AC的IPunsigned charAC_M
20、AC6;/ AC的MACunsigned shortAC_SessionID;/ AC与ONIC的PPPoE会话IDchar*AC_Name;/ AC的名字char*AC_Cookie;unsigned shortAC_Cookie_Len;unsigned shortAC_AuthProto;/ 认证协议(只支持PAP)unsigned charAC_PPP_ID;/*/unsigned shortStatu;/ PPPoE的状态标记unsigned shortTimeOut;/ PPPoE的超时计数器/*/MemBlkNATMem;/ 内存池,为NAT转换表分配内存/*/TCPTuple*
21、pTCPTuple;/ TCP转换链表unsigned intiTCPTuple;/ TCP转换表项的个数UDPTuple*pUDPTuple;/ UDP转换链表unsigned intiUDPTuple;/ UDP转换表项的个数ICMPTuple*pICMPTuple;unsigned intiICMPTuple;unsigned shortiTCPPort;/ TCP端口转换序号unsigned shortiUDPPort;/ UDP端口转换序号ONIC; 第二种为INIC(内网网卡),INIC实质上就是内网的网关,它为内网的PC提供NAT转换,将流向外网的UDP/TCP数据包进行端口及I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 PPPoE NAT 设计 实现
链接地址:https://www.31ppt.com/p-4861988.html