欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    通信工程毕业设计(论文)NAT协议的研究.doc

    • 资源ID:3994373       资源大小:261.50KB        全文页数:38页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    通信工程毕业设计(论文)NAT协议的研究.doc

    毕业设计说明书NAT协议研究学生姓名: 学号: 学 院: 专 业: 通信工程 指导教师: 2007年 6 月目 录1引言21.1背景及研究目的21.2NAT当前研究情况31.3课题主要工作及结构安排42NAT的工作原理42.1NAT简介42.2NAT使用的几种情况52.3NAT的功能52.3.1内部地址翻译52.3.2内部全局地址复用62.3.3TCP负载重分配62.4NAT的原理62.5NAT的工作过程62.6NAT技术类型82.6.1静态NAT82.6.2动态NAT池82.6.3NPAT83NAT存在的缺陷及现行解决方案93.1问题93.2现行NAT穿越解决方案103.3ALG方案103.5MIDCOM 方案123.6STUN方案123.7各种方案的简单对比154基于UDP传输的NAT穿越解决方案164.1目标164.2NAT类型174.3实际NAT测试情况204.4解决方案原理214.4.1通信过程214.4.2理论分析214.4.3试验结果234.5与STUN 解决方案的比较235基于UDP传输的NAT穿越解决方案的简单设计255.1基本原理255.2实体介绍255.3消息属性265.4基本通信过程265.4.1网络环境265.4.2客户端行为265.4.3服务器端行为285.5客户端设计285.6服务器端设计336结束语35参考文献36致谢381引言1.1背景及研究目的当1983年1月1日TCP/IP协议成为ARPANET上唯一的正式协议以后,ARPANET上连接的网络,机器和用户快速增长,特别是NSFNET和ARPANET互连以后,数目更是以指数增长。很多的地区网络开始加入,并且开始与加拿大,欧洲和太平洋地区的网络连接。到了80年代中期,人们开始把互连的网络集成互连网,后来就是因特网。增长继续保持指数级,到了2002年巳经拥有了3000个网络和2000,000台计算机。其规模大约每年翻一翻1。因特网业务的发展需要它能够提供大量IP地址来满足企业和个人的访问需求。人们开始在制定的网络协议的时候,没有考虑到网络的规模能够增长的如此迅速,所以造成了现有网络协议IP地址的短缺。于是提出了大量的解决方案,例如提出了Ipv6协议来扩大IP地址的大小,改变IP地址结构,甚至提出了废弃IP地址。不幸的是,这些方案要么改变路由器的结构,要么改变PC机结构或者同时改变这两者,所以这些方案不能够马上实施。一种新的解决方案地址复用也是提出的方案之一。这种解决方案是基于这样的事实:在任意给定的时刻,私网中只有很小比例的主机和公网中的主机进行通信。基于这种思想,在私网内部没有必要为每台主机都分配一个公网的IP地址。这样整个网络就被分成了私网和公网。在私网内部,主机之间的通信地址完全可以使用可以重复利用的私网地址。如果私网内部的主机需要和公网的主机进行通信,只需要动态的把NAT设备的公网IP地址分配给需要和公网进行通信的主机,NAT作为中间转发设备,起到一个桥接作用实现二者之间的通信2。基于这种想法,1993年由PaulFr ancis和TonyEng在Computer Communication Review发表了一篇关于地址复用的论文,在这篇论文中首次提到了地址复用的思想和实现地址复用的NAT设备。IETF1994年5月提出了NAT协议,当时主要是为了解决网络地址短缺的问题;IETF又在1996年2月份提出了私有网络的概念。在1999年8月份IETF提出了NAT中使用的相关的术语。进入2000年,由于宽带城域网的兴起,传统的TCP/IP协议的应用开发更加成为研究的热点,NAT协议作为一个新协议急切的需要研究和开发,应用到实际网络中去。1.2NAT当前研究情况作为一类标准Internet技术,NAT能实现让内部LAN通信运用一套IP地址,而外部通信采用另一套IP 地址,这在现行IPv4协议环境下意义重大。通过NAT分离Internet与LAN地址,相对于单一的全球地址分配机制来说,很多地址可以节省下来。为许多申请不到很多可全球路由公共地址的企业提供了局域网内终端都可连网的解决方案,但是,NAT的缺陷是一个不容忽视的问题3。内部地址在公网上没有路由,用户可以访问别人,但难以被别人访问。在我国的IP网上,目前很多用户都在用着“内部地址”,这种现象毫无疑问对我国IP 业务的发展有很大的潜在危害。这种危害实际上已经逐渐显示出来。随着IP 电话在技术层面也逐渐走向成熟,与之相应的一系列协议、标准的出炉,多媒体通信系列标准的组成部分H.323和IETF的SIP,以及基于这些标准协议的产品,如IP 电话系统、媒体网关等得到了广泛应用,一些网络冲突也突显出来。比如当前一些网络实体限制这样端到端的分组通过,这些实体指的就是防火墙和网络地址转换器4。但随着我国IP电话的发展,这一系列标准,协议都将会应用到实际中去,因此当前N AT的研究方向都是基于各种标准,各种协议的NAT穿越技术。1.3课题主要工作及结构安排本课题是在以NAT应用为基础的背景下,以穿越NAT技术为研究对象。首先介绍NAT的基本原理及常用技术类型,接下来通过对NAT在实际网络环境中的应用找出存在的缺陷,分析目前较为流行的解决方案的实现原理,最后提出了自己的解决方案,分析其理论可行性,在实际的试验中也得到证实是切实可行的,并对方案进行论证和简单的设计在第一章中简要叙述了NAT的背景及本课题的研究目的等内容;第二章主要说明NAT的定义,NAT的原理,NAT分类及NAT的技术类型等内容;第三章介绍了目前NAT应用存在的缺陷及当前各种NAT解决方案以及各自的优缺点;第四章较详细的介绍了自己的解决方案,并进行理论分析和试验验证,最后根据论证结果与现有解决方案STUN做比较;第五章给出了一个解决方案实现的例子,以及相关的程序流图;第六章是对整个课题的一个总结。2NAT的工作原理2.1NAT简介NAT英文全称是“Network Address Translator”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准。在一个局域网中同时与外界通讯的主机数量只占域中主机总体数量的很小一部分,事实上,很多主机几乎从来不进行域外通讯,根据这种特点,可以看出实际上并不需要为每台主机都配备全局地址,只要分配少数几个全局地址给一个局域网,如果所有局域网中主机能够重用这几个公共IP地址和外界通讯,那么IP地址的需求量就会大大减少。NAT正是利用了局域网的这种特点,实现了允许专用网络上的多台PC共享单个、全局路由的IPv4地址。IPv4地址日益不足是部署NAT的一个主要原因。简言之,NAT技术就是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术5。如图所示: 内部网络 私有地址 NAT 公有地址 外部网络图2.1网络地址转换示意这种技术的主要优点是它可以随时在局域网中添加主机,其它主机及路由器的设置都不需要改变(除了几种特殊的应用),因此,这种解决方案可以很方便的配置和实施。2.2NAT使用的几种情况a 连接到internet,但却没有足够的合法地址分配给内部主机;b 更改到一个需要重新分配地址的ISP;c . 有相同的IP地址的两个internet;d 想支持负载均衡(主机);2.3NAT的功能采用NAT,可以实现以下几个功能:内部地址翻译(Translation inside local addresses);内部全局地址复用(overloading inside global addresses);TCP负载重分配(TCP load distribution);处理重叠网络(Handing overlapping networks)。下面分别介绍它们的工作原理:2.3.1内部地址翻译这是NAT最通用的一种方法,功能是将网络内部局部IP一对一的翻译成内部全局地址。在内部主机连接到外部网络时,当第一个数据包到达NAT路由器时,router检查它的NAT表,因为NAT是静态配置的,故可以查询出来(simply entry),然后router将数据包的内部局部IP(源地址)更换成内部全局地址,再转发出去。外部主机接收到数据包用接收到的内部全局地址来响应,NAT接收到外部发回来的数据包,再根据NAT表把地址翻译成内部局部IP,转发到内部网络。2.3.2内部全局地址复用这种方法使用地址和端口将多个内部地址映射到比较少的外部地址。也就是所谓的NAPT。和内部地址翻译一样,NAT router负责查表和翻译内部IP地址,唯一的区别就是由于使用了overloading,router将复用内部全局IP地址,并存储足够的信息以区分不同地址,这样查询出来的是extended entry。NAT router和外部主机的通讯采用翻译过的内部全局地址,故同一般的通讯没有差别,从外部网络经router到内部主机通讯时,同样要查NAT表6。2.3.3TCP负载重分配这种方法和以上两种操作不同,这是NAT由外到内的翻译,所以那种以为WEB server一定要放置到NAT外部的说法是错误的。工作原理:外部主机向虚拟主机(定义为内部全局地址)通讯,NAT route接受外部主机的请求并依据NAT表建立与内部主机的连接,把内部全局地址(目的地址)翻译成内部局部地址,并转发数据包到内部主机,内部主机接受包并作出响应。NAT router 再使用内部局部地址和端口查询数据表,根据查询到的外部地址和端口做出响应。此时,如果同一主机再做第二个连接,NAT router将根据NAT表将建立与另一虚拟主机的连接,并转发数据。2.4NAT的原理NAT安装在内部网络和外部网络之间具有NAT功能的设备上,在内部主机需要和外部进行通讯时,NAT负责进行地址翻译工作,所以在NAT上还必须维护一个翻译表(NAT表)来存储相应的地址转换信息,如果一个域有多个出口,那么还必须保证每个NAT具有相同的翻译表。简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用。2.5NAT的工作过程NAT设备后面的客户端通常通过DHCP(动态主机配置协议)分配到专用的IP地址,或由管理员进行静态配置。在与该专用网络的外部进行通讯时,通常会发生下列事情:a. 在客户机上:当应用程序想同服务器通讯时,它将打开与源IP地址源端口、目标IP地址端口及网络协议相关联的套接字。这样可以识别通讯所需的两个端点。当应用程序利用该套接字传输信息时,客户机的专用IP地址端口将被插入数据包的源地址字段中。数据包的目标字段将包含服务器的IP地址端口。由于该数据包的目的地是在该专用网络之外的某个位置,因此客户机将把该数据包转发给默认的网关。这种情况下的默认网关就是NAT设备。:NAT设备将截获该输出数据包,然后利用目标IP地址端口、NAT设备的内部全局IP 地址端口、网络协议及客户机的内部局部IP地址端口来创建端口映射。NAT设备将维护这些映射组成的表,并将该端口的映射存储在表中。内部全局IP地址端口就是该数据通讯用于取代内部局部IP地址端口的公共IP地址端口。NAT设备随即将来自客户机专用内部IP地址端口的数据包的源地址字段转换为NAT设备的公共IP地址和端口,实现对这些数据包的地址转换。然后,数据包将通过外部网络发送出去,并最终到达目标服务器。Internal:192.168.1.1:1000External:202.13.34.56:1000Remote:334.333.234.45:80Src:192.168.1.1:1000Dest:334.333.234.45:80Src:202.13.34.56:1000Dest:334.333.234.45.80NAT服务器工作站图2.2出站数据包转换的示例b. 服务器上:当服务器接收到数据包时,它认为自己是在和一台具有可全球路由IP地址的计算机进行通讯。它会利用自己源地址字段中的护地址端口将响应数据包定向到NAT设备的外部IP地址和端口。NAT设备从服务器那接收到这些数据包,然后将数据包与其端口映射表进行比较。如果NAT发现某个端口映射的远程主机正地址端口、外部端口及网络协议与输入数据包的源IP地址端口、目标端口和网络协议匹配,NAT就会进行反向转换。NAT将把数据包目标字段中的外部IP地址和外部端口替换为客户机的专用正地址和内部端口27。2.6NAT技术类型NAT有三种类型:静态NAT(Static NAT)、动态NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。三种NAT 方案各有利弊。其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个1P地址的不同端口上。根据不同的需要,可以选择不同的配置方式。2.6.1静态NAT静态NAT是NAT中最简单的应用方式,内部网络IP地址和外部网络IP地址只能是一一对应的固定映射方式,且需要指定和哪个地址进行转换。如果内部网络中有E-mail服务器、FTP服务器、WEB服务器等为外部网络用户提供服务,则这些服务器的IP地址必须采用静态地址转换,以便外部网络用户可以使用这些服务。2.6.2动态NAT池动态NAT池(Pooled NAT)是采用动态分配的方法映射内部网络的和外部网络的IP地址。采用NAT池意味着可以在内部网中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP地址。在动态NAT环境中能够同时和外界通讯的用户个数受限于地址池中的地址个数。当远程用户连接上之后,动态地址NAT就会分配给他一个未分配给其它用户的地址池中的IP地址,用户断开时,这个IP地址就会被释放而留待以后使用,由此可见动态NAT还必需维护一个动态表格以便纪录私有IP地址和全局IP地址的对应关系,因为它们之间的对应关系不像静态NAT那样一一对应,也因此动态NAT要比静态NAT复杂得多。该引起注意的是,NAT池中动态分配的外部IP地址全部被占用后,后续的NAT翻译申请将会失败,并传回host unreachable的ICMP包,只有当一个用户结束连接,自动释放分配给它的全局地址后,新的地址转换要求才能被执行9。2.6.3NPAT网络地址端口转换NAPT(Port Address Translation)也称为PAT,是人们比较熟悉的一种动态地址转换方式,它可以允许多个内部本地地址共用一个内部全局地址,同时用不同的协议端口号映射不同的内部网络地址。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号,而动态NAT是把不同的私有内部地址转换为地址池中未被使用的全局地址9。3NAT存在的缺陷及现行解决方案3.1问题在IPv4网络中,公有IP地址的不足导致了用户网络中广泛采用了私有IP地址。为了实现用户私网中发出的IP包在公网上可路由,在用户网络与公网交界处需要专门的翻译设备-网络地址翻译器(NAT)实现IP报头公有地址和私有地址等信息的翻译。作为一类标准Internet技术,NAT能实现让内部LAN通信运用一套IP地址,而外部通信采用另一套IP地址,这在现行IPv4协议环境下意义重大。通过NAT分离Internet(公共域)与LAN(专用域)地址,相对于单一的全球地址分配机制来说,很多地址可以节省下来。这一方面为许多申请不到很多可全球路由公共地址的企业提供了局域网内终端都可连网的解决方案,另一方面,由于私网内部的终端与外界不能直接进行通信,使得外部网络看不到内网的主机的存在,从而提供了内部网络一定的安全特性,在这方面起到了防火墙的作用。但是,NAT的缺陷也是一个不容忽视的问题。内部地址在公网上没有路由,用户可以访问别人,但难以被别人访问。在我国的IP网上,目前很多用户都在用着“内部地址”,这种现象毫无疑问对我国IP业务的发展有很大的潜在危害。这种危害实际上已经逐渐显示出来。随着IP 电话在技术层面也逐渐走向成熟,与之相应的一系列协议、标准的出炉,如ITU-T的H.323和IETF的SIP,以及基于这些标准协议的产品,如IP电话系统、媒体网关等得到了广泛应用,一些网络冲突也突显出来。比如当前一些网络实体限制这样端到端的分组通过,这些实体指的就是防火墙和网络地址转换器。基于H.323、SIP、MGCP和H.248等协议的语音和视频应用需通过信令消息中的IP地址和端口参数来实现目的地寻址,因此NAT穿越时不仅需要对TCP/UCP层的端口信息以及IP 层的源地址和目的地址进行变换,还需对IP包载荷中的相关地址信息进行变换;但是NAT只是在数据包通过时修改数据包的源地址、源端口以及目的地址、目的端口,对IP包载荷中的任何信息包括地址信息都不进行修改,这使得通信不能正常进行,而这个问题也急需解决321。尽管NAT的应用给网络传输带来了许多的弊端,但是由于IP地址资源匾乏,而长远的解决方案IPv6又处于试验研究阶段不能在短时间内得以部署和实施的情况下,NAT仍然是必然的选择,所以当前要考虑的关键问题是解决NAT穿越这个棘手问题。3.2现行NAT穿越解决方案NAT穿越技术是指企业网用户和本地网用户内的终端用户采用私有IP地址通过出口的NAT/FW(防火墙)接入公网。目前关于NAT穿透问题有多种解决方案,到底采用哪种方式需要从以下角度进行综合考虑:升级要求,哪些网络元素需要做升级;网络业务量,应用这种解决方案后,是否会引入新的网络开销;在IP电话技术中还要考虑语音质量,此解决方案是否影响语音质量,增加时延或丢包率;运营商的投资,运营商是否需要做大量投资;企业投资,如果面向企业客户,企业是否需要做大量投资;确定性,此解决方案是否只能在特定的环境下生效,是否可以支持各种应用方案,是否可以穿越各种NAT;扩展性,此方案是否支持大规模应用1011。目前,对于NAT穿越问题业界提出了各种解决方案,主要有应用级网关(ALG)、代理方式(Proxy)、MIDCOM协议、STUN等,各自均具有不同的优点和缺点。下面一一进行介绍:3.3ALG方案NAT和NAPT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换,对于报文的数据部分可能包含IP地址或端口信息的特殊协议(如H.323、SIP、MGCP等),则无法实现有效的转换,这就可能导致问题发生。解决这些特殊协议的NAT转换问题的一个方法就是在NAT实现中采用ALG(Application level Gateway,应用级网关)功能。ALG是在传统的NAT上进行协议扩展,使之具备感知SIP、H.323、H.324和MGCP等呼叫控制协议的能力,它通过与NAT交互以建立状态,使用NAT的状态信息来改变封装在IP报文数据部分中的特定数据,并完成其他必需的工作以使应用协议可以跨越不同范围运行,从而完成呼叫控制协议的解析和地址翻译功能。ALG方式是最简单也是最早出现的一种NAT穿越方案,然而其缺点也非常明显。(1)可扩展性不强,即每增加一种应用都需要对ALG设备进行升级;(2)增加了NAT设备的负担,影响地址穿越的效率和性能;(3)已部署的大量NAT的升级改造工作非常困难。因此,尽管ALG方式在某些应用环境获得了一部分应用,但随着技术的发展,ALG方式巳逐渐被其他更优的方式所取代。WANLANAB LANCDFirewall/NAT with ALG Function图3.3ALG组网示意图3.4代理方案代理技术是为缓解ALG方式所带来的现有NAT升级困难而出现的,也是目前比较流行的一种NAT穿越解决方案。代理方案是指通过对私网内用户呼叫的信令和媒体同时做Relay来实现出口NAT/FW的穿越。它是采用代理设备为私网内SIP、H323、MGCP和H.248用户的语音和多媒体呼叫业务提供信令通道和媒体通道的地址转换功能。代理方式在网络中部署的位置也比较灵活,既可以应用于私网内部、也可以应用于公网和私网边缘或公网。由于采用专用的IP语音和视频业务的代理设备,代理方式无需对现有的传统NAT进行协议扩展,所以不会影响数据业务的NAT穿越。然而,代理技术有着与ALG方式相同的局限性,即每增加一种新的应用需要对代理设备进行协议扩展。LANClient AClient BFull prosyFirewall/NATWAN图3.4Proxy方式组网示意图3.5MIDCOM 方案MIDCOM技术是为了解决ALG和代理技术所共有的可扩展性不强及代理方式中同时进行媒体和信令中继转发所带来的效率不高问题,而出现的一种NAT穿越解决方案,由IETF制定,用于代理设备分离为信令转发和媒体转发两个部分之间的接口协议。实际应用中,媒体转发功能可以集成于NAT设备完成,信令转发可采用独立的功能实体或集成于软交换设备中完成。MIDCOM技术是采用可信的第三方(MIDCOM Agent)对Middlebox(NAT)进行控制,由MIDCOMAgent控制Middlebox打开和关闭媒体端口。通常,MIDCOMAgent的功能可以集成在呼叫控制服务器之中,而Middiebox 功能集成在NAT之中,MIDCOMAgent和Middlebox之间接口采用MIDCOM协议完成互通。MIDCOM技术的优势在于可扩展性强,新增应用只需对MIDCOM Agent进行扩展,而不会导致MIDB0X重新升级。另外从安全性考虑,MIDCOM方式支持控制报文和媒体流的加密,因此安全性比较高。然而,MIDCOM技术的实施需要对服务器和现有的NAT/FW需要同时进行MIDCOM协议的升级扩展以支持MIDCOM工作组开发的防火墙控制协议,且需要在运营商网络侧部署MIDCOM控制代理,这样,MIDCOM控制代理才可控制NAT/FW打开关闭Pinhole,因此该方案的实施不可避免带来了现有设备升级的困难。但可以预见的是,随着MIDCOM协议的不断成熟和发展,该方式将获得越来越多的应用前景1216。LANABLANCDFirewall/NAT/MidBox图3.5MIDCOM方式组网示意图3.6STUN方案STUN(simple Traversal of UDP Through NAT)是由IE作研制的一种UDP流协议穿透NAT的协议。STUN协议有客户端和服务器两部分协作共同完成NAT穿越功能,位于内部网络的STUN client(NAT内)通过UDP发送请求STUN消息给外部网络的STUN Server(NAT外),STIJN Server收到请求消息后产生响应消息,响应消息通过NAT发送给STUN Client,STUN Client通过响应消息体中的内容得知其在NAT上对应的外部地址,然后将该地址填入以后的呼叫协议的UDP负载中,并且告知对端,本端的RTP接收地址和端口号为NAT外的地址和端口号。由于通过STUN协议己在NAT上预先建立媒体流的NAT映射表项,因此媒体流可顺利穿越NAT。STUN具体工作过程如下描述:STUN是一个简单的客户服务器协议。客户端发送请求,服务器做出相应的响应。有两种类型的请求,一种是Binding Requests,是基于UDP传输。另一种是shared secret Requests,是针对TSL及TCP传输。Shared Secret Requests请求服务器返回一个临时用户名和密码,随后的Binding Requests 及Binding ResPonse 都将用到此临时用户名和密码,这样可以达到消息认证,保证消息安全。Binding Requests用于确定经过NAT时内部地址与外部地址之间的映射消息。客户端发送请求消息,服务器确定收到的请求数据包源地址和源端口,然后把这些消息封装到响应数据包中,发送给客户端。在请求数据包中有几个参数,根据这些参数的设置情况,可以指导服务器端把响应数据包发送到与源地址及端口不同的地址和端口,或是服务器用与接收数据包时的接收地址不同的地址和端口发送响应包。还有一些属性可以确保消息的认证和完整性。一般来说,客户端程序嵌入到应用程序中,应用程序可通过STUN客户端和服务器端的消息交互获得将要用来接收数据的公有地址。当应用程序启动时,应用程序中嵌入的NAT客户端向服务器端发送shared Secret Request,获得一个临时用户名和密码,然后发送Binding request给服务器。可以通过DNS SRV纪录来发现服务器,或者仅仅假定客户端己经被配置了专门的发现过程来查询服务器所在位置。STUN Binding Request 主要用于发现NAT设备的存在,以及私有地址与公有地址之间的映射关系。它主要是通过UDP方式与服务器交互。当一个Binding Request到达服务器端,它可能经过了多个NAT设备,所以,服务器所接收到的数据包的源地址是距离服务器最近的NAT映射的地址。服务器把源IP地址和源端口消息存入STUN Binding Response中,然后发送响应包。不论何种前面所提到的NAT类型,响应包都回返回到STUN客户端。当客户端接收到STUN Binding Response时,它将比较包中地址消息和发送请求时的地址消息的异同如果不匹配,说明客户端和服务器端之间有多个NAT设备。如果NAT是Full Cone类型,那么响应包中的IP地址和端口消息是公有的,外部网络中的任何主机都可以使用此公有地址和端口向发送请求包的应用发送数据包,而应用也只需监听此发送请求包的地址和端口,就可以接收任何发送到此公有地址和端口的任何数据包。当然,NAT并不一定必然是Full Cone类型的NAT,实际上,我们甚至不知道我们的终端到底是处在什么类型的NAT后,为了确定终端到底处于什么类型的NAT后,我们可以多次使用STUN Binding Request,实际的过程是很自由的,有应用程序自己确定,但一般情况都是如下所述:客户端将再次发送STUN Binding Request,这次发送的请求数据包是从同一个地址和端口发送,但是发送的目的地却和上一次不同,如果此次接收到的响应包中地址消息与上一次接收到的响应包中的地址消息不同,则说明NAT是symmetric类型。否则,则继续发送请求数据包。为了确定内网终端是否是处于Full Cone类型的NAT之后,客户端可以发送请求包,设置标志位让服务器用与接收请求包不同的IP地址和端口发送回响应包,换句话说,就是如果客户端发送请求数据包到目的IP地址端口为A/B,而源IP地址端口是X/Y,服务器端将用从C/D发送响应包到X/Y,而不是从A/B到X/Y,如果客户端仍然能够接收到响应数据包,说明NAT正是Full Cone类型。同样的道理,如果客户端没有接收到响应包,则确定NAT也不是Full Cone类型,为了进一步确定NAT类型,客户端将再次发送请求包,这次要求服务器用相同的IP地址不同的端口发送回数据包,如果客户端能够接收到响应包,则说明NAT是Restricted Cone类型,否则是Port Restricted Cone类型。值得注意的是,STUN服务器可以位于任何位置,设置可以位于另外一个客户端,唯一条件就是STUN服务器是可达的,也即客户端总是可以通过网络到达服务器。如果客户端总是试图去获得一个外部网络地址,那么服务器必然要配置在外部网络中1218。STUN ClientSTUN ClientLANCDLANWANFirewall/NAT与SERVER连接与Server保持连接STUN Server图3.6STUN方式组网示意图3.7各种方案的简单对比1 部署位置:ALG位于私网公网边缘;STUN,MIDCOM,Proxy则不受限。2 对原有网络的影响:ALG和MIDCOM需要增加路由;其他三种对原有网络没有影响。3 对终端的需求:ALG和MIDCOM对终端没有特别需求;STUN续要实现客户端;Proxy则需要终端收发端口一致。4 对服务器的需求:ALG和STUN对服务器没有特殊要求;MIDCOM需要实现Agent;Proxy对服务器没有特殊要求12。4基于UDP传输的NAT穿越解决方案4.1目标前面已经说过,目前已经有多种穿越NAT的解决方案,这些解决方案可以说各有优缺点,各自适合不同的应用场合,并且很多解决方案在实际的工作中己经得到了应用。近年来,多媒体业务迅速发展,并且逐渐成为IP业务发展的一个重点,热点,但是多媒体传输的特点决定了NAT将成为其发展的一个很大的障碍。另一方面,因为IP地址的短缺,使得国内企业用户普遍采用NAT来满足共享IP,实现企业内部人员都能上网的需求。因此这两个现实问题成为一个不可调和的矛盾。实际上,对于IP短缺这个不可改变的事实,在IPv6尚未成功实现部署之前,NAT的应用是必不可少的,所以只能从找到并实现穿越NAT解决方案上来解决根本问题。然而,对多媒体传输来说,现存的各种穿越NAT解决方案并不是最佳选择,也仍然没有一种较好的解决方案可以满足当前多媒体业务的发展1322。基于这种现状,提出了自己的穿越NAT解决方案,这一解决方案是针对多媒体业务提出的,众所周知,多媒体业务对实时性要求较高,而对于准确性上,却不是那么严格,所以使用UDP传输是必然选择,事实上,对于多媒体传输,业界正是普遍采用的UDP传输的。所以说我们的解决方案的目标就是解决多媒体数据基于UDP的传输。要说明我们的解决方案,下面首先需要介绍一些基础知识,这是后面我们分析解决方案时所必须了解的。4.2NAT类型STUN协议把NAT分为四种类型,也即:Full Cone、Restricted Cone、Port Restricted cone、symmetric。下面逐一介绍。a . Full Cone:Fun Cone类型的NAT要求某个特定的私有IP地址和端口经过NAT映射后应该映射到同一个外部全球唯一的公共地址和端口。例如某个网络中有终端的私有IP是192 . 168 . 1 . 1,此终端在端口2000 发送IP包,经过NAT 后内部地址192 . 168 . 1 . 1 : 2000 映射为外部地址22 . 22 . 22 . 22 : 3000,则每个从内部地址192 . 168 . 1 . 1 : 2000发送的包,经过NAT后都必定映射为外部地址22 . 22 . 22 . 22 : 3000。任何一个外部终端向22 . 22 . 22 . 22 : 3000发送的包都会被内部终端192 . 168 . 1 . 1 : 2000接收。Fun Cone NAT的工作机制如图所示:一旦打开端口,就可以在此端口接受从任何主机发送过来的数据包。图4.1Full Cone NAT工作机制示意图b .Restrided Cone:Restricted Cone类型的NAT要求某个特定的私有IP地址和端口经过NAT映射后应该映射到同一个外部全球唯一的公共地址和端口,这点与Fun Cone相同。但是,只有从接收到内网发送的包的终端才可以发送响应包到才可以为内部终端接收,而从其他外部终端发送过来的包都被拒绝。例如,从192 . 168 . 1 . 1 : 2000发送包到外部终端123 . n . 1 . 1 : 2222。此发送的包经过NAT 映射为外部地址22 . 22 . 22 . 22 : 3000,然后通过网络发送到目的地,此后只有从123 . 11 . 1 . 1发送到地址22 . 22 . 22 . 22 : 3000的数据包才可以被内部终端192 . 168 . 1 . 1 : 2000接收1516。Stricted NAT的工作机制如图4-2所示,只有内部向外部发送数据包,打开端口后,才可以从外界接受数据包,而且只能从内部向外部发送数据包的目的地址发送回来的数据包才可以穿越NAT,到达内部主机。这里从同一个主机,不同端口发送回来的数据包都能够为内部主机接受,但是从不同主机发送过来的数据包,无论端口是什么,都不能穿越NAT,为内部主机所接受,这一点是它与后面的Port Stricted NAT的最主要区别。箭头没有到达NAT网关,说明此方向的数据包不能穿越NAT到达目的主机,而是在NAT网关处丢弃,后面图示中箭头的意思与此处的箭头意思相同16。图4.2Stricted NAT工作机制示意图c .Port RestriCted Cone:Port Restricted Cone类型的NAT要求某个特定的私有IP地址和端口经过NAT映射后应该映射到同一个外部全球唯一的公共地址和端口,这与前两种类型相同,但是只有从接收到内网发送来数据包的终端及其相应接收端口发送回来的响应包才可以为内部网络的终端接收,例如在上例中,只有从外部地址123 . n . 1 . 1主机的端口2222 发送回来的响应包才可以为内部终端192 , 168 . 1 . 1接收。Port Stricted NAT工作机制如图4-3所示。只能从目的地址和端口发送回的响应包可以穿越NAT。图4.3Port Stricted NAT工作机制示意图dSymmetricsymmetric类型的NAT与前三种类型有很大的不同,这种类型的NAT要求,即使是从同一个终端和同一个端口发送的数据包,如果目的地址不同,经过NAT映射的地址也不会相同。例如,从内部终端192 . 168 . 1 . 1,端口为2000 的内部地址发送数据包,目的地址为123 . 11 . 1 . 1,端口为2000,此时数据包经过NAT 映射为22 . 22 . 22

    注意事项

    本文(通信工程毕业设计(论文)NAT协议的研究.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开