(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf_第1页
(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf_第2页
(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf_第3页
(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf_第4页
(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机应用技术专业论文)一种基于udp的nat穿越方法的设计与实现.pdf.pdf 免费下载

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

文档简介

中山大学硕士学位论文 种基于u d p 的n a t 穿越方法的设计与实现 论文题目: 专业: 硕士生: 指导教师: 一种基于u d p 的n a t 穿越方法的设计与实现 计算机应用技术 朱婧 常会友教授 摘要 在i p v 6 短期内难以在全球广泛使用的今天,n a t 仍是解决口地址资源匮乏 问题的重要途径。然而,由于它改变了私网数据包的包头口地址信息,造成端 到端的连接难以建立,使得n a t 技术反而成为v o 口应用的障碍。如何使拥有私 网p 地址的用户能够正常通信,成为v o i p 应用中亟待解决的棘手难题。因此, n a t 环境下私网用户的互通性研究,对于v o i p 系统的大规模应用,无疑具有十 分重大的意义。 本文首先通过对n a t 技术的分析,综合比较目前主流的n a t 穿越解决方案, 主要借鉴s t u n 和t u r n 协议的设计思想,提出了一种基于u d p 的n a t 穿越 方法u t n 。它通过n a t 类型探测技术收集到足够的信息,以获取建立连接时所 需要的n a t 外部映射i p 地址和端口;采用信令语音全代理技术,专注于对称型 n a t 的穿越处理,从而完成任何情况下的n a t 穿越和端到端连接的建立。接着, 本文在u t n 方法的基础上,设计了一个多线程多路代理的框架结构,详细分析 了其设计方案。并且,通过线程调度机制,在维持较高成功率的同时,将框架的 性能负担维持在一个较低的水平。然后,将设计的框架应用到项目实践之中,采 用模块化技术,实现了一个代理服务器系统,并自动完成对不同n a t 类型的识 别和穿越,建立相应的端到端连接。最后,对代理服务器进行了一系列测试,包 括基本呼叫功能测试、语音质量测试、性能测试及异常情况测试。测试的结果表 明:u t n 方法确实能够实现对任何n a t 类型下信令及语音流的穿越。 目前,该代理服务器配合客户端和中心服务器已经在l i n u x2 4 9 e 3 平台上 测试并成功运行,效果良好。文中提出的观点和具体方案可以指导企业有效地开 发出具有可扩展性、可移植性、可重用性的n a t 穿越系统。 文章最后对所做的研究工作进行了总结,同时也指出了研究中有待完善的地 方,不足之处将是下一步的研究方向。 关键词:n a t 穿越;u d p ;端到端;v 0 p 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 t i t l e :d e s i g na n di m p l e m e n t a t i o no f au d p b a s e ds o l u t i o nf o rn a tt r a v e r s a l m a j o r :c o m p u t e rs c i e n c e m a s t e r :z h uj i n g s u p e r v i s o r :p r o f e s s o rc h a n gh u i y o u a b s t r a c t n a th a sb e c o m et h ep o p u l a rw a yt os o l v et h el a c ko fi pa d d r e s s ,b e c a u s et h e m a s su s eo f i p v 6n e e d sa l o n gt i m ei nt h ew o r l d b u tn a t n o wb e c o m e st h eo b s t a c l e o fv j 邛a p p l i c a t i o n s s i n c en a t c h a n g e st h ea d d r e s si n f o r m a t i o no fp r i v a t en e t w o r k d a t a g r a m ,i tm a k e st h ee n d t o e n da p p l i c a t i o nu n s u c c e s s f u l s oh o wt om a k eu s e r s w i t ho n l yp r i v a t ei pa d d r e s s e sc o m m u n i c a t ew i t he a c ho t h e ri sa ni m p o r t a n tp r o b l e m i nt h ev o 口a p p l i c a t i o n s r e s e a r c ho f n a tt r a v e r s a lt h e r e f o r eh a sa b i gs i g n i f i c a n c e i nt h i sp a p e r , w ed i s c u s ss e v e r a ln a tt r a v e r s a ls o l u t i o n sa n de m p h a s i z eo nt h e a m e n d m e n to ft h i n k i n go fs t u na n dt u r np r o t o c 0 1 an o v e ln a tt r a v e r s a l s o l u t i o nb a s e do nu d pi sp u tf o r w a r d ,w h i c hn a m e su t n i tu s e st h em e c h a n i s mo f n a t t y p ed e t e c t i o nt og e te n o u 曲i n f o r m a t i o nf o rar i g h tp a i ro fm a p p e di pa d d r e s s a n dp o r t ,a p p l i e sf u l lp r o x yf o rs i g n a la n dd a t as t r e a mt os y m m e t r i cn a t sh a n d l i n g t h e n ,af r a m e w o r ko fm u l t i t h r e a d sm u l t i p r o x i e s ( m t m p ) i si n t r o d u c e db a s e do n u t na n dd i s c u s s e si t sd e t a i l e dd e s i g n m t m pt a k e st h r e a ds c h e d u l i n gt og u a r a n t e e h i g hs u c c e s sr a t eo fp o r ta l l o c a t i o nw h i l em a i n t a i n i n gal o ws y s t e mo v e r l o a d t h e n w ei m p l e m e n tap r o x ys e r v e r , a p p l y i n gm t m pt oap r o j e c tw i t hm o d u l a r i z a t i o n t e c h n o l o g y i t c a na c c o m p l i s hn a tt r a v e r s a la n de s t a b l i s hp 2 pc o n n e c t i o n s a u t o m a t i c a l l y t h e n ,w ep e r f o r mas e r i e so ft e s t st oc h e c kt h ef u n c t i o n a l i t ya n d p e r f o r m a n c eo ft h ep r o x ys e r v e r t h er e s u l ts h o w e st h a tu t nc a nt r u l ya c c o m p l i s h t r a v e r s a lf o rs i g n a la n dr t ps t r e a m si na n yn a te n v i r o n m e n t t h ep r o x ys e r v e rc a nr u ns m o o t h l yt o g e t h e rw i t hc l i e n ta n dc e n t e rs e r v e rn o w t h ev i e w p o i n t si n t h i st h e s i sc a nd i r e c tt h ed e v e l o p m e n to fn a tt r a v e r s a ls y s t e m e f f e c t i v e l ya n dh e l pm a k et h es y s t e mm o r ee x t e n s i b l e ,t r a n s p l a n t a b l ea n dr e u s a b l e a tl a s t ,w ec o n c l u d et h em a i nw o r k ,p o i n to u tt h es h o r t a g eo ft h er e s e a r c ha n d g i v es o m ef u r t h e rr e s e a r c hd i r e c t i o n s k e y w o r d s :n a tt r a v e r s a l ,u s e rd a t a g r a mp r o t o c o l ,e n d t o e n d ,v o i c eo v e ri p i i 中山大学硕上学位论文 一种基于u d p 的n a t 穿越方法的设计与实现 1 1 研究背景 第1 章绪论 计算机网络通信技术的飞速发展和激烈的市场竞争,极大地推动了v o p ( v o i c eo v e ri p ) 应用的发展。v o 口是一种通过对语音信号进行数字化编码、压 缩处理成帧,然后转换为m 数据包在口网络上进行传输和语音通信的技术。它 不仅提高了网络带宽的利用率,而且大大降低了通信的费用,同时保证清晰、稳 定、低延时的语音质量,推动了宽带多媒体应用的发展【l 】。 目前,在v 0 口领域主要有两大信令体系:一是由国际电联电信标准部 ( i n t e r n a t i o n a lt e l e c o m m u n i c a t i o nu n i o n t e l e c o m m u n i c a t i o ns t a n d a r d i z a t i o ns e c t o r , i t u t ) 起草的h 3 2 3 协议簇,另一个则是因特网工程任务组( i n t e m e te n g i n e e r i n g t a s kf o r c e ,i e t f ) 提出的会话初始化协议 2 1 ( s e s s i o ni n i t i a t i o np r o t o c o l ,s w ) 。比较 而言,两大信令体系完全独立【3 。但是,h 3 2 3 与s i p 又是可以互通的,在应用 的不同阶段可以采用不同的协议达到最佳方案 4 】_ 【5 】o 从市场的应用情况来看,s k y p e 6 是目前全球最成熟的v o i p 应用,不仅可以 与其他用户进行高清晰的语音对话,也可以拨打国内国际电话,用户无需进行复 杂的防火墙或者路由设置。此外,一些即时通讯软件,如微软的m s nm e s s e n g e l 雅虎的y a h o om e s s e n g e r 和g 0 0 9 l e 推出的t a l k 以及t r i t o n ,现在也宣布支持口 电话业务。由此可见,口电话市场一片繁荣,以语音通信为主的p 电话以其语 音质量高、费用低,深受大众欢迎。 然而,v o p 发展中也面临着严峻的考验。通常,运营商和企业都部署了防火 墙,其主要目的是保护防火墙内部的计算机不受外部网络的攻击影响,阻挡任何 不请自来的数据包通过。此外,如果不修改防火墙的规则,防火墙不会自动打开 实时传输协议【7 】( r e a l t i m et r a n s p o r tp r o t o c o l ,r t p ) 通信所需的动态分配的端 口,从而无法进行通信。可见,要让数据流安全地通过防火墙,必须允许使用动 态端口的t c p 和u d p 连接通过防火墙,通常的做法是开放1 0 2 4 6 5 5 3 5 的端口。 因此,v 0 i p 发展中私网下用户无法进行通话的问题主要还是在于n a t 技术。 为了缓解口地址短缺的压力以及安全性考虑,网络地址翻译( n e t w o r k a d d r e s st r a n s l a t o r , n a t 峭】) 技术应运而生,有效地缓解了口地址不够分配的问 题。由于其简单和易于实现,目前已经得到广泛应用,并将长期存在且发挥巨大 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 作用。然而,网络上n a t 设备的大量使用,使得设计中将p 地址作为通信标志 符的v o p 协议无法正常工作【9 。位于n a t 设备后的语音和视频设备仅有私网 口地址,这些地址在公网上不可路由,控制i n t e m e t 上信息流向的路由设备仅仅 能把数据送到具有可路由口地址的设备,这就严重制约了口电话和视频会议应 用的发展。由于他们的口地址是私有的,因此n a t 后的终端不能接收局域网外 终端的呼叫。即使n a t 内的终端可以向n a t 外的终端发起呼叫,仍然徒劳。发 起呼叫的终端地址如果是私有的,i n t e m e t 路由器将丢弃从外部终端发送往内部 终端的音频和视频数据包。因为这些数据包正被送往一个不可路由的口地址。 虽然这个呼叫将显示已经连接,但n a t 后的终端a 将永远不会收到外部终端b 的音频和视频数据。因此,解决n a t 的穿越问题,便成为v o p 发展中至关重要 的一环。 1 2 作者的研究工作及意义 本文以“波讯企业级i p 电话”项目为研究对象,着眼于语音传输中n a t 穿 越技术的探讨,研究如何穿越n a t 、n a t 穿越后信令的正常建立连接及r t p 流 传输等问题。在研究过程中,作者主要做的工作有: 第一,认真研究v o 坤的基本原理,缜密比较了h 3 2 3 和s i p 两种v o m 系统 网络架构的优缺点。针对v o 邛应用中存在的n a t 问题,通过查阅大量文献资料, 在对n a t 的原理和分类方法进行深入研究的基础上,探讨了现有各种解决n a t 问题方案的技术特点和实现方式。 第二,在分析比较的基础上,借鉴及综合s t u n 和t u r n 设计思想的优点, 提出了一种穿越n a t 的设计方案u t n ,以消除单个使用所带来的缺陷。u t n 方 法建立在u d p 的基础之上,以面向非连接的方式来获取有效的映射端口信息。 因此,该方案具有较强的实用性。此外,通过引入n a t 类型探测的策略,在连 接建立前动态识别n a t 类型,以便将非对称型和对称型进行区别处理,从而大 大改善了u t n 方法的性能。 第三,设计了一个多线程多路代理的系统框架。多线程由一个监听线程及若 干个工作线程组成,这样就可以满足独立控制与多线程多路语音会话同时并行传 输的需求。监听线程负责监听终端的代理请求,调用线程负载均衡机制,从整体 上对各路工作线程进行有效控制,从而实现线程间的负载平衡。工作线程通过识 别消息包的包头类型,以统一对信令和语音流的处理方式,大大简化了处理流程。 第四,以波讯企业级i p 电话项目为研究对象,将设计的框架应用于代理服 中山大学硕士学位论文种基于u d p 的n a t 穿越方法的设计与实现 务器的开发,并进行了部署及测试。目前,该代理服务器配合客户端和中心服务 器已经在l i n u x2 4 9 e 3 平台上测试并成功运行,效果良好。 该课题旨在解决v o 口应用中存在的实际问题:由于n a t 的存在,使得n a t 内部私网地址用户无法与n a t 外部用户正常通信。同时,由于公网i p 地址资源 的匮乏以及i p v 6 尚未普及,网络上将长期大量存在n a t 设备。因此,本文的研 究成果对于v o 口系统的大规模应用无疑具有十分重大的意义。文中提出的观点 和具体方案将指导企业有效地开发出具有独立性、可移植性、可重用性、高可靠 性的n a t 穿越系统。 1 3 论文组织结构 本文以实验室的波讯企业级口电话项目为研究对象,对v o 口应用中的n a t 穿越问题进行了深入的探讨。除本章外,其余章节的结构安排如下: 第2 章首先介绍了n a t 的定义及分类,接着列举了目前主要的n a t 穿越解 决方案,并从多方面综合比较了各种解决方案的优、缺点,分析了各解决方案的 技术特点和不足之处。 第3 章至第6 章是全文的重点。在第3 章里,提出 了一种基于u d p 的n a t 穿越方案u t n ,介绍了方案的设计思想和具体工作流程,并分析了影响u t n 方 法的因素。第4 章是基于u t n 方法的多线程多路代理框架的设计架构,详细介 绍了框架的总体设计和关键组件的工作原理。第5 章应用多线程多路代理的框 架,以波讯口电话项目为研究对象,实现了一个代理服务器系统。第6 章给出 了针对代理服务器性能进行的测试报告,并对测试结果进行了客观的分析。 第7 章是结束语,对全文的主要研究成果进行了总结,并对下一阶段更深入 的研究探讨作了展望。 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 第2 章n a t 技术和主要解决方案 本章主要介绍了n a t 技术的定义和分类,回顾并总结了主要的n a t 穿越解 决方案,并对它们的技术特点和不足之处进行了分析。 2 1n a t 定义及分类 随着i n t e m e t 用户数量的迅猛增长,当前广泛使用的口协议( i p v 4 ) 逐渐暴 露出地址资源消耗过快的问题。下一代的口协议体系( 口v 6 ) 已经基本制定完 成,其地址长度从3 2 位增加到1 2 8 位,不会出现口地址短缺的问题。但就目前 情况看来,i p v 4 的网络应用广泛,并且考虑到兼容性问题,以及具体实施过程 中的一些不确定因素,向i p v 6 的过渡不可能一蹴而就,i p v 6 取代p v 4 尚需时日。 因此,n a t 标准应运而生。 n a t 是i e t f 组织制定的一项标准,它允许一个组织或企业以单一公网口地 址的形式出现在i n t e m e t 上。n a t 可以将局域网内结点的私有口地址转换成一 个公网p 地址,反之亦然。它帮助网络超载地址的限制,合理地安排网络中公 网p 地址的使用,适用于局域网内结点以较少的公网m 地址访问外部网络。当 内部机器需要访问外部时,n a t 会为它分配外部地址;当它访问完毕,分配的 地址会释放重用。n a t 的好处就在于,使用它不需要对内部主机做任何修改。 从地址的映射方式看,n a t 可分为静态n a t ( s t a t i cn a t ) 与动态n a t 。动态 n a t 在实现上可划分为完全锥形n a t ( f u l lc o n en a t ) 、限制锥形n a t ( r e s t r i c t e d c o n en a t ) 、端v i 限制锥形n a t rp o r tr e s t r i c t e dc o n en a t ) 及对称型 n a t ( s y m m e t r i cn a t ) 四类”1 。 1 ) 静态n a t 静态n a t 是指内外部地址对一的固定映射,采用静态绑定的模式。静 态n a t 虽然很容易做到内外互通,强调了安全性与易管理性,却没有达到节省 外部地址的目的。因此,下面的讨论将不包含这种n a t 类型。 2 ) 完全锥形n a t 完全锥形n a t 是指所有来自同一内部口地址和端口的请求,都被映射到相 同的外部p 地址和端口。并且,任何一台外部主机都能通过把口包发送给己得 到映射的外部口地址的方式,将该包发送给内部主机。举例如图2 1 所示。 中山大学硕士学位论文 一种基于u d p 的n a t 穿越方法的设计与实现 图2 - 1 完全锥形n a t 示意图 2 9 0 0 0 2 0 2 。3 + ;o z 【髓 s 0 撕 由此可见,目标主机部分没有记录2 0 2 3 4 6 8 6 2 :6 0 0 0 ,也就是说在n a t 表 中对目标主机部分没有作任何限制。这时,如果内部主机1 9 2 1 6 8 1 3 9 6 8 :5 0 6 0 向外部任何主机和端口发送数据包,源地址都将转换为2 1 0 7 2 1 2 8 1 1 0 :5 0 8 0 。 3 ) 限制锥形n a t 限制锥形n a t 是指对于所有来自内部相同i p 地址和端口的请求,都被映射 为相同的外部口地址和端口。但与完全锥形n a t 不同的是,只有当内部主机以 前曾经给口地址为x 的外部主机发送过一个包时,口地址为x 的该外部主机才 能够把一个p 包发送给该内部主机。举例如图2 2 所示。 图2 - 2 限制锥形n a t 示意图 z _ 3 # l “z 。i 涨 s a 限制锥形n a t 对目标地址进行了限制,而对端口不限制。也就是说,只有 该地址向2 1 0 7 2 1 2 8 1 1 0 :5 0 8 0 发送的数据包才能被正确地发送到内部主机 1 9 2 1 6 8 1 3 9 6 8 :5 0 6 0 。因为对目标端口没有限制,所以从该主机的任何端口如 7 0 9 0 端口发向2 1 0 7 2 1 2 8 1 1 0 :5 0 8 0 的数据包也能被正确发送到内部主机。然而, 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设汁与实现 由于内部主机没有向2 0 2 3 6 1 0 2 1 0 8 :5 0 0 0 发送过数据包,所以该主机发来的数 据包不能被转发。 4 ) 端口限制锥形n a t 端口限制锥形n a t 与限制锥形n a t 类似,但是它对端口进行了限制。特别 是,一个外部主机可以发送一个源地址和源端口号分别为( x ,p ) 的口包给外 部主机,只有当内部主机以前曾经给p 地址为x ,端口号为p 的外部主机发送 过一个包时,口地址为x 的该外部主机才能够把一个源端口号为p 的口包发送 给该内部主机。 5 ) 对称型n a t 对称型n a t 是指把所有来自相同内部口地址和端口号,到特定目的口地址 和端口号的请求映射到相同的外部口地址和端口。如果同一主机使用不同的源 地址和端口对,发送的目的地址不同,则使用不同的映射。并且,只有收到了一 个p 包的外部主机才能够向该内部主机发送回一个u d p 包。对称型n a t 不保 证所有会话中的( 私网i p 地址,私网端口) 和( 公网p 地址,公网端口) 之间绑定的 一致性。相反,它为每个新的会话分配一个新的端口号。 会话1 ( a 与服务器1 ) 123 4 :1 2 3 4 1 0 0 1 0 01 0 01 0 0 :6 2 0 0 0 服务器1 234 :1 2 3 4 对称n a t 0 0 1 0 0 1 0 0 1 0 0 服务器2 45 67 :4 5 6 7 然 1 0 01 0 01 0 01 0 0 :6 2 0 0 黧鬻爹匿 图2 - 3 对称型n a t 示意图 从图2 3 中可以看出,假如客户a 分别从相同的内部地址和端口号 f 1 0 0 01 :1 2 3 4 ) 同时发起两个会话请求到服务器1 和服务器2 ,对称型n a t 可能 会为这两个来自相同地址的请求分配不同的端点号,如把1 0 0 1 0 0 1 0 0 1 0 0 :6 2 0 0 0 中山大学硕士学位论文种基于u d p 的n a t 穿越方法的设计与实现 分配给会话1 ,把1 0 0 1 0 0 1 0 0 1 0 0 :6 2 0 0 1 分配给会话2 。因为这两个会话中有一 个端点不同,所以虽然在通过n a t 设备时,客户a 的身份发生了变化,但n a t 仍然能够正确工作【l l 】。 一般来说,完全锥形n a t 、限制锥形n a t 和端口限制锥形n a t 可以归为一 类,统称为非对称型n a t 。和对称型n a t 的区别在于前面三种的n a t 映射不会 根据目的地址的不同而改变,而第四种则会根据数据包的目的地址的不同而改变 映射。因此,在对安全性要求较高的企业网中,出口n a t 通常就是这种类型。 2 2n a t 穿越的解决方案 2 2 1 研究现状 目前,关于穿越n a t 的解决方法,国际上的一些标准化组织( 如i e t f ) 己 经制定了一系列参考标准及协议,主要有a l g t l 2 1m i d c o m 13 1 、r s i p ! ”、 s t u n 1 ”、t u r n 16 1 、i c e l l 7 1 等;在国内,如中科院、复旦大学等科研单位及高 校在此领域也进行了大量且卓有成效的研究工作( 主要成果见。 2 4 】) 。 此外,关于v o 口应用的开源项目并不少见,其中关于n a t 穿越的解决方案 2 5 1 啦”,要么过手繁杂,要么尚处于框架阶段,无法直接运行。 2 2 2 主流的解决方案 针对n a t 穿越的问题,业界主要有以下六种解决方案。 1 ) a l g a l g ( a p p l i c a t i o nl e v e lg a t e w a y ) 的基本思路,是通过在n a t 中加入协议认知 能力,使n a t 能够在v 0 口信令消息通过时修改其内容中的地址信息,以后的媒 体流数据能够通过n a t 指定的端口穿过。即在应用层加载能识别指定口协议的 网关,它不是简单地察看包头信息来决定数据包是否可以通过,而是更深层地分 析数据包负载内的数据,也就是应用层的数据。对n g n 业务应用,a l g 需要支 持p 语音和视频协议( l 3 2 3 ,s i p 等) 的识别和对n a t 的控制,以使n g n 业 务顺利穿越n a t 。目前,主要驻留在一些n a t 或防火墙设备中,要求这些设备 本身具备应用识别的智能。同时每增加一种新的应用都将需要对n a t 设备进行 升级。 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 这种解决方案,不足之处在于需要分析数据包负载,在呼叫路径上的每个 n a t 设备都必须被升级来支持a l g 功能。同时,由于不断会有新的协议的出现, 如果采用a l g 就必须对其进行不断的升级才能保证不影响v o 口的应用,其性能、 可扩展性和可实施性较差。 2 ) m i d c o m m i d c o m ( m i d d l e b o xc o n t r o lp r o t o c 0 1 ) 与a l g 大体类似。不同之处在于, m i d c o m 对信令协议的认知能力从n a t 内部移到了外部,即第三方的m i d c o m 代理上,并通过m i d c o m 代理对n a t 设备进行间接的控制。由于m i d c o m 思 想对v 0 口协议的认知功能移到外部的m i d c o m 代理上,因此,在不需要更改 n a t 基本特性的基础上,通过对m i d c o m 代理的升级就可以支持新的协议或业 务,这是相对a l g 思想的一大优势。在安全性上,m i d c o m 可支持信令消息的 加密和媒体流的加密,因此安全性较高。 可见,m i d c o m 是一种比较有前途的解决思想,性能较好。然而,它实现 复杂,要求n a t 设备支持m i d c o m 协议,这和网关服务器思想相似。对已有 大量n a t 设备的网络来说,实在较为困难,还需要多方厂商的支持。 3 ) r s i p r s i p ( r e a l ms p e c i f i c 口) 的基本思想是,内网中的结点希望通过某个端口连接 外网时,首先向r s i p 服务器发出一个请求,r s i p 接收请求,分配一个公网地址 和端口,作为响应回送给内网中的结点,同时将这个公网地址端口对和私有地 址端口对进行关联。私网结点用这个分配的地址和端口代替原先的私网地址和 端口组织数据内容和i p 包,然后利用原先的私有地址和端口对这个数据包进行 封装,发到r s i p 服务器。r s i p 服务器对接收到的私有地址包进行解封装,然后 转发到公网上,实现了私网到公网的穿越。 该方法对于从外部如何访问内部资源并没有给出解决方法,在s i p 中可以通 过在r s i p 服务器上预留端口与内网资源绑定来解决问题。然而,由于需要现有 的s i p 客户端添加对r s i p 的支持,使得实现这种方法的代价较大。 4 ) s t u n s t u n ( s i m p l et r a v e r s a lo fu d pt h r o u g hn e t w o r ka d d r e s st r a n s l a t o r s ) 的基本 思想是通过私网内的s t u n 客户机与公网上的s t u n 服务器通信,预先得到与 v o i p 终端私网口地址相对应的n a t 公网地址信息,并用这个公网地址信息填入 终端发送的信令消息之中。这样,当n a t 从该公网地址处收到u d p 包时,就会 中山大学硕十学位论文一种基于u d p 的n a t 穿越方法的设计与实现 将其转发到与之对应的私网地址,也就是v o i p 终端的接收地址上。 s t u n 协议最大的优点是实现简单,支持多级n a t ,无需现在n a t 设备做 任何改动。同时,s t u n 方式可在多个n a t 串联的网络环境中使用,但m i d c o m 协议则无法实现对多级n a t 的有效控制。s t u n 的局限性在于需要v o p 终端具 备s t u nc l i e n t 的功能,同时s t u n 并不适合t c p 连接的穿越,因此不支持h 3 2 3 协议。此外,s t u n 不支持对对称型n a t 的穿越。 5 ) t i 瓜n t u r n ( t r a v e r s a lu s i n gr e l a yn a t ) 的设计思想与s t u n 相似,也是基于终端 通过某种机制预先得到其私网地址对应在公网的地址( s t u n 得到的地址为出口 n a t 上的地址,t u r n 得到的地址为t u r n 服务器上的地址) ,然后在数据包负 载中所描述的地址信息就直接填写该公网地址。t u r n 通过分配t u r ns e r v e r 的地址和端口作为客户端对外的接受地址和端口,即内网用户发出的数据包都要 经过t u r n 服务器进行中转。 它除了具有s t u n 的优点外,还解决了s t u n 应用无法穿越对称型n a t 的 缺陷。同时,t u r n 支持基于t c p 的应用,如h 3 2 3 协议。此外,t u r n 服务 器控制地址和端口的分配,避免了s t u n 中出口n a t 对r t p r t c p 地址端口 号的任意分配,使得客户端无法收到对端发送的r t c p 数据包。t u r n 的局限性 在于所有数据包都必须经过t u r n 服务器转发,导致t u r n 服务器负载较重, 数据流量较大的情况下容易出现丢包或延迟的现象。 6 ) i c e i c e ( i n t e r a c t i v ec o n n e c t i v i t ye s t a b l i s h m e n t ) 并非一种新的协议,它不需要对 s t u n 或t u r n 进行扩展就可适用于各种n a t 。i c e 是通过综合运用上面两种 协议,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有 缺陷。其基本思想是两端都分别尝试连接s t u n 和t u r n 服务器,由终端列出 所有可以到达它的地址,这些地址可能包括本地地址、s t u n 来源地址和t u r n 分配的地址。终端双方都会去分别连接所有列出的地址,并把得到的地址按优先 级排列在s d p 消息中,然后由对端解析这个消息。按照优先级尝试连接所给出 的地址后,再从能互通的候选地址中择优进行通信。 但是i c e 协议亦有缺陷。首先,如果很多通话在对称型n a t 之下,i c e 实 际就是使用t u r n ,这就仍然避免不了t u r n 造成的语音延迟问题。其次,i c e 得到和测试地址的连通性的过程也过于复杂。 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 2 3 解决方案的分析 2 3 1 技术特点 从业界主流的六种n a t 穿越方案中可以清楚地看到,n a t 技术目前主要应 用于口及u d p t c p 层,即对p 包的地址及端口号进行转换,而h 3 2 3 和s i p 协 议是基于u d p t c p 之上的应用层控制协议。比如s i p ,在其包头中含有很多关 于路由、接续s i p 信令和建立呼叫连接的必不可少的地址信息,真正的媒体连接 信息是放在s d p ,即口包的负载中传递,这部分的私网地址在穿越n a t 时不能 被转换,因而造成s i p 信令寻址不成功或媒体通道不能建立的问题。 因此,v o i p 穿越n a t 主要需要解决两方面的问题:一个是信令的穿越,另 一个则是r t p 流的穿越。目前,主流的v o i p 应用协议,无论是s i p 还是h 3 2 3 , 其实现方式都是通过信令消息的协商,交换彼此的终端信息并商定媒体流通信的 端口和地址,最后通过r t p 协议进行媒体流的传送。为了叙述的方便,下面便 针对s i p 不同部分的穿越方法进行分析。 1 ) 信令穿越 信令穿越主要难在公网上的服务器能否把消息正确地传递给n a t 设备后的 客户端。针对这种情况,目前主要有两种方法: 基于u d p 连接方式 在s i p 消息中增加r e c e i v e d 和r p o r t 标记。当用户发送含有这些标记的s i p 消 息到服务器时,服务器将把它所收到的这个消息的源地址和端口分别填在这两个 标记后面,这样就得到了映射后的端口信息。但是,这种方法有几点限制:首先, 这两个标记都不是s i p 的标准标记,所以需要开发支持它们的服务器才能使用; 其次,由于采用了u d p ,私网用户需要定期刷新连接,以维护这个绑定。这是 因为,当一段时间内n a t 没有收到该用户发出的数据包,它就会消除这个动态 的端口映射绑定。 基于t c p 连接方式 如果服务器不支持r e c e i v e d 和r p o r t 标记,那么客户端可以通过与服务器建立 t c p 连接而达到穿越的目的。由于t c p 连接会一直保持,n a t 自然一直保持这 个绑定,直到t c p 连接断开为止。所以,客户端不需要增加维护绑定的工作。 该方法的局限性在于:首先不是所有的服务器都支持t c p 方式的连接。其次, 中山大学硕士学位论文一种基于u d p 的n a t 穿越方法的设计与实现 维护t c p 连接,将极大地消耗服务器的资源。 2 ) r t p 流穿越 相对信令而言,r t p 流的穿越就困难些。解决r t p 流穿越的关键是终端能够 知道它所对应的公网口地址,从而正确填充s d p 消息。针对非对称型n a t 和 对称型n a t 的特点,r t p 流穿越的方法主要有: 非对称型n a t 下:以s t u n 协议为典型代表。它不需要在n a t 上进行 改动,唯一需要的就是在公网上架设一个s t u n 服务器。但是,s t u n 最大的不足就是无法工作在对称型n a t 下。此外,由于r t c p 的端口 号是r t p 的端口号加1 ,而对于客户端,经过n a t 映射之后,端口可 能就不只差1 ,这样r t c p 将无法工作。再就是由于s t u n 仅适用于u d p , 那么客户端必须保证绑定的时间,以免n a t 动态地删除这个映射关系。 对称型n a t 下:以t u r n 协议作为典型代表。它能够适用于所有的n a t 环境。而且由于语音都要经过服务器中转,所以能够提供语音的安全性。 但其缺点也是明显的。当通话人数增多,t u r n 服务器的负担急剧增大, 从而造成语音延迟和丢包的严重性。所以,尽管t u r n 适用性广泛,实 际却较少使用 2 8 。 2 3 2 不足之处 目前,v o p 应用中n a t 穿越的研究和应用可谓层出不穷。然而,绝大部分 研究和应用都是建立在h 3 2 3 或s i p 协议基础之上的,这就不可避免地要受限于 协议本身,缺乏适用于一般应用的整套规范化的解决方案。为了能使v o 坤技术 更为广泛地推广使用,确实迫切需要一套完善的n a t 穿越解决方案。 在此,有必要澄清的是:端到端应用与对等式应用有很大的区别。在对等式 应用中,数据被保存在用户的计算机上,数据在对等结点之间直接传递,没有服 务器的概念,新加入的结点会给系统增加新的资源。而端到端应用则是基于c s 架构的。 理论上,对等网络的分布式哈希查找算法包括c h o r d e ”i 、c a n l 3 0 、p a s t ”】、 t a p e s t r y 3 2 1 等等,它们都通过哈希函数来标识主机结点,利用路由表机制进行路 由转发。其缺点在于,首先,这些算法没有对n a t 穿越问题做详细探究;其次, 结点的位置信息被破坏,来自同一子网的站点很有可能被分配相距甚远的结点 号,这显然不利于查询性能的优化;第三,利用路由信息进行转发,没有考虑到 中山大学硕士学位论文种基于u d p 的n a t 穿越方法的设计与实现 网络时延、带宽及路由热区的问题。此外,由于缺乏集中式的管理,对等式应用 中的安全性问题 3 3 1 尤为突出。 应用上,对等式应用主要用于数据和文件共享系统之上【3 4 1 。【3 6 ) ,并没有成熟 的v o l p 应用。即便是s k y p e ,在某种程度上来说,除了s k y p e 全球索引服务器 为新加入的结点指派超级结点外,s k y p e 架构和典型的s i p 电话架构没有区别。 s k y p e 在登录认证时使用中央服务器,也就是说,如果这个中央服务器发生故障, 那么整个系统将陷于瘫痪。可见,s k y p e 也不属于真正意义上的对等式应用,且 它也是基于私有协议的。 从上述分析中不难发现,对等式应用的理论研究成果不少,但应用实例并不 多见,尤其是v o d 方面的成功案例更是凤毛麟角。端到端应用以其清晰的职责 分配及成功经验,占据着主导地位。因此,本文将讨论的正是端到端口电话这 种应用模式。 中山大学硕士学位论文 一种基于u d p 的n a t 穿越方法的设计与实现 第3 章基于u d p 的n a t 穿越方法u t n 在本章中,提出了一种基于u d p 的n a t 穿越方法u t n ( u d p b a s e dt r a v e r s a l o fn a t ) 。u t n 采用自定义的通讯协议,并且引入n a t 类型探测技术,保证了 u t n 方法的成功率。u t n 在借鉴s t u n 和t u r n 协议设计思想的基础上进行了 改进,对n a t 的穿越方法进行了重新设计,深入探讨了v o 应用中的n a t 穿 越问题。下面就将u t n 、的设计思想和具体工作流程,以及对影响u t n 方法性能 的因素进行逐一阐述。 3 1 基于u d p 的通讯模型 用户数据报协议( u s e rd a t a g r a mp r o t o c o l ,u d p ) 是i s o 参考模型中一种无 连接的传输层协议,工作于p 协议的上层。u d p 之所以被称为无连接的服务方 式,是因为使用u d p 协议进行通讯的客户端与服务器之间不必存在长期的连接 关系。并且,u d p 不能确保数据报最终可到达目的地。与t c p 相比,u d p 节省 了连接建立和拆除的时间。u d p 只需两个分组来交换一个请求和应答,t c p 则 需要大约1 0 个分组。计算获得应答所需分组的往返次数,可以发现,u d p 请求 一应答的最小事务处理时间是r t t + s p t ( 其中,r t t 是客户与服务器之间的往返 时间,s p t 是服务器处理请求的时间) 。然而对t c p 来说,时间是2 r t t + s p t , 比u d p 时间多一个r t t 。 多媒体通信的一个显著特点是数据量大,并且许多应用对实时性都有较高的 要求。实时性应用要求传输的延时小、丢包率低,它的这些特点决定了本身受重 传机制、拥塞控制机制等限制的t c p 协议不适合用来传输实时多媒体数据。 3 2 概要设计 不难看出,h 3 2 3 和s i p 设计时都没有考虑n a t 穿越的问题,现有的n a t 穿越技术都是对h 3 2 3 和s i p 进行的补充。虽然h 3

温馨提示

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

评论

0/150

提交评论