关于NAT的一些疑惑

来源:互联网 发布:sql语法参考手册 编辑:程序博客网 时间:2024/05/22 12:49

最近对NAT的穿透技术比较感兴趣,也看过不少大虾的作品,获益颇深

但对于其中一些内容不太了解

主要还是基本概念不清楚

如:

NAT的分类;有分为Cone 以及Symmetric的;又有分为静态,动态,以及端口复用等类型的;

NAT的穿透技术分类有: 

1.ALG方式
  ALG(Application Level Gateway)方式是最早出现的NAT穿越解决方案。ALG是在传统的NAT上进行协议扩展,使之具备感知SIP、H.323、H.324和MGCP等呼叫控制协议的能力,从而完成呼叫控制协议的解析和地址翻译功能。
  ALG方式是最简单一种NAT穿越方案,然而其缺点也非常明显。(1)可扩展性不强,即每增加一种应用都需要对ALG设备进行升级;(2)增加了NAT设备的负担,影响地址穿越的效率和性能;(3)已部署的大量NAT的升级改造工作非常困难。因此,尽管ALG方式在某些应用环境获得了一部分应用,但随着技术的发展,ALG方式已逐渐被其他更优的方式所取代。
  2.MIDCOM
  MIDCOM技术是为了解决ALG和代理技术所共有的可扩展性不强而出现的一种NAT穿越解决方案。MIDCOM技术是采用可信的第三方(MIDCOM Agent)对Middlebox(NAT)进行控制,由MIDCOM Agent控制Middlebox打开和关闭媒体端口。总的来说,MIDCOM技术是一种理想的NAT穿越解决方案,它将IP语音视频业务识别的智能从Middlebox转移到外部的MIDCOM Agent上,应用协议对Middlebox来说是透明的。
  通常,MIDCOM Agent的功能可以集成在呼叫控制服务器(如SIP服务器、GK或软交换设备)之中,而Middlebox功能集成在NAT之中,MIDCOM Agent和Middlebox之间接口采用MIDCOM协议完成互通。MIDCOM技术的优势在于可扩展性强,新增应用只需对MIDCOM Agent进行扩展,而不会导致MIDBOX重新升级。然而,MIDCOM技术的实施需要对服务器和现有的NAT需要同时进行MIDCOM协议的升级扩展,因此该方案的实施不可避免带来了现有设备升级的困难。同时,MIDCOM协议尚处于不断完善的阶段,设备制造商提供的产品种类有限,因而现阶段MIDCOM方式的实际应用并不多见。但可以预见的是,随着MIDCOM协议的不断成熟和发展,该方式将获得越来越多的应用前景。
  3.代理技术
  代理技术是为缓解ALG方式所带来的现有NAT升级困难而出现的,也是目前比较流行的一种NAT穿越解决方。它是采用代理设备为私网内SIP、H.323、MGCP和H.248用户的语音和多媒体呼叫业务提供信令通道和媒体通道的地址转换功能。代理方式在网络中部署的位置也比较灵活,既可以应用于私网内部、也可以应用于公网和私网边缘或公网。由于采用专用的IP语音和视频业务的代理设备,代理方式无需对现有的传统NAT进行协议扩展,所以不会影响数据业务的NAT穿越。同时,代理技术在实现NAT穿越时对终端的特殊要求也比较少,因此代理方式正逐步成为当前实现NAT穿越的主要方式。然而,代理技术有着与ALG方式相同的局限性,即每增加一种新的应用需要对代理设备进行协议扩展。此外,代理设备需同时对信令和媒体进行中继转发,除工作效率和转发速度受影响之外,还不可避免地增加了语音包和视频包的时延和丢包可能性。
  4.隧道机制
  隧道机制逻辑上由隧道客户端和隧道服务器两部分构成。隧道客户端和隧道服务器通过隧道协议建立一条隧道,实现信令和媒体流透明穿越NAT。隧道客户端无需识别H.323、SIP、MGCP或H.248等呼叫信令协议,信令识别功能由隧道服务器来完成,并由隧道服务器转发至公网中的服务器。通常,隧道客户端位于私网内部,隧道服务器位于公网。隧道机制的特点是不需对现有NAT设备作任何扩展,仅需要NAT设备通过策略配置打开几个知名端口,从而降低打开过多端口所带来的安全隐患。此外,隧道穿越机制很容易实现多级NAT的穿越问题。
  5.协议扩展
  协议扩展是针对各个信令协议的特点,在信令消息中增加新的消息参数或者对原有的呼叫流程进行改进,使之可以适应于私网到公网地址的穿越。该方案的优点是无需对现有NAT设备进行改动,缺点是现有的终端和软交换设备、网守和SIP服务器等控制设备需要同时进行扩展。因此,在协议扩展时应重点考虑协议的向下兼容问题,以保证与未扩展的终端的完整互通性。

 又有分为:

中继(Relaying)
逆向连接 (Connection reversal )
UDP封装打洞(UDP hole punching)
UDP端口号预测(UDP port number prediction)
TCP同时打开(Simultaneous TCP open)
TCP封装打洞

这些都是如何分类的呢?为啥会有这些分别?

同是NAT分类,同是NAT穿透技术分类?

原创粉丝点击