NAT技术基本原理及其在实际中的应用
- 格式:pdf
- 大小:139.14 KB
- 文档页数:5
NAT技术的原理与实现NAT(Network Address Translation,网络地址转换)是一种广泛应用于网络中的技术,它的作用是将内部网络的私有IP地址转换为公有IP地址,从而实现内部网络与公网的通信。
NAT技术的原理和实现主要涉及到以下几个方面:一、原理:1.私有地址空间:私有地址是指在互联网上不能直接路由的IP地址。
IPv4私有地址空间包括10.0.0.0/8、172.16.0.0/12和192.168.0.0/16三个范围。
NAT的用途就是将这些私有地址转换为可路由的公有地址。
2.IP地址转换:NAT技术通过在私有网络与公网之间建立网络地址转换设备,实现内网地址到公网地址的映射。
NAT设备通常具有两个网口,一个连接内部网络,一个连接外部网络。
3. 端口映射:除了实现地址转换外,NAT技术还可以实现端口映射(Port Mapping),这样可以将多个内部IP地址共享一个公网IP地址。
通过修改源IP和目的IP的组合,将来自不同内部IP地址和端口的数据包映射到公网上。
二、实现:2.动态NAT:动态NAT是指为内部网络中的主机动态分配公网IP地址。
当内部网络中的主机需要与外部网络通信时,NAT设备会从一个预定义的IP地址池中选择一个公网IP地址进行转换。
动态NAT可用于大规模内部网络中,更灵活地利用公网IP地址资源。
3.端口地址转换(PAT):端口地址转换是动态NAT的扩展,其基本原理是将内部网络主机的源端口号进行转换,实现多个内部主机共享一个公网IP地址。
当内部网络中的主机与外部网络通信时,NAT设备会为每个会话分配一个唯一的端口号,并将其与内部IP地址进行映射。
这样在公网上就可以同时存在多个会话并正常通信。
4.NAT穿透:在一些情况下,由于NAT设备的存在,会导致一些应用无法正常工作,这就需要通过NAT穿透技术来解决。
NAT穿透技术通过特殊的协议或中间设备来绕过NAT设备,实现内部主机与外部网络的直接通信,从而保证应用的正常运行。
总结nat技术原理及其在实际应用中的优缺点NAT(网络地址转换)技术原理是将私有IP地址转换为公有IP 地址,使得内部网络的设备可以通过NAT网关访问外部网络。
NAT网关根据端口号将内部网络的私有IP地址和端口号转换为外部网络的公有IP地址和端口号,实现内部网络与外部网络之间的通信。
在实际应用中,NAT技术的优点包括:
1.节省IP地址:NAT技术可以将多个内部网络的私有IP地址映射到一个公有IP地址,从而节省了IP地址的使用。
2.提高安全性:NAT技术隐藏了内部网络的真实IP地址,使得外部网络无法直接访问内部网络的设备,提高了网络的安全性。
3.方便远程访问:通过NAT技术,内部网络的设备可以使用外部网络的公有IP地址访问外部网络,无需进行手动配置,提高了远程访问的便利性。
然而,NAT技术也存在一些缺点:
1.延迟增加:由于NAT设备需要检查和修改数据包中的IP地址,因此会增加网络延迟和降低网络性能。
2.应用限制:某些应用程序需要直接访问计算机的IP地址,而NAT会隐藏计算机的真实IP地址,导致这些应用程序无法正常工作。
3.配置复杂度:NAT设备的配置相对复杂,需要专业人员进行操作,增加了网络管理的复杂度。
4.端口限制:NAT技术通常使用端口号进行转换,因此受到端口号的限制,可能无法满足大规模的网络通信需求。
综上所述,NAT技术在节省IP地址、提高安全性和方便远程访问等方面具有优势,但也存在增加延迟、应用限制、配置复杂度和端口限制等缺点。
在实际应用中,需要根据具体情况选择是否使用NAT 技术。
掌握 NAT 等技术的原理与应用一、什么是 Network Address Translation (NAT)?Network Address Translation (NAT),即网络地址转换,是一种在网络通信中常用的技术。
通过使用 NAT,可以将一组私有 IP 地址映射到一个或多个公有 IP 地址上,实现内部私有网络与公网之间的连接。
NAT 通常被用于解决 IPv4 地址不足的问题。
在一个组织或家庭网络中,可能有数十台设备需要访问互联网。
然而,IPv4 地址的数量有限,且较为昂贵。
通过使用 NAT 技术,可以将多个私有 IP 地址映射到一个公有 IP 地址,从而在一定程度上解决地址不足的问题。
二、NAT 的原理NAT 的原理是通过在网络上的设备(通常是路由器)上维护一个地址转换表来进行工作。
该表记录了内部私有 IP 地址与外部公有 IP 地址之间的映射关系。
当内部设备向外部发送数据包时,路由器会自动将源 IP 地址从内部私有 IP 地址转换为外部公有 IP 地址,并将此映射关系记录在地址转换表中。
当外部服务器返回响应数据包时,路由器会将目标 IP 地址从外部公有 IP 地址转换为内部设备的私有 IP 地址,然后将数据包传递给相应的设备。
NAT 还可以通过端口转换的方式,将多个内部设备的通信映射到同一个公有 IP 地址的不同端口上,从而实现端口多路复用。
三、NAT 的应用NAT 技术可以在许多场景中被应用。
下面是一些常见的应用示例:1.家庭网络:在典型的家庭网络中,家庭中的多个设备(如电脑、手机、智能家居设备等)需要与互联网通信。
通过使用 NAT,家庭中的路由器可以将内部设备的私有 IP 地址转换为一个公有 IP 地址,并管理网络中所有设备之间的通信。
2.企业网络:在企业网络中,常常需要将内部网络与互联网隔离,以提高安全性。
使用 NAT 技术可以实现内部网络与外部网络之间的通信,并提供一定程度的网络隔离。
简述 NAT 的工作原理及主要应用NAT 是什么?网络地址转换(Network Address Translation,简称 NAT)是一种在计算机网络中用于将一个 IP 地址转换为另一个 IP 地址的技术。
NAT 技术有助于解决 IPv4地址资源短缺的问题。
NAT 的工作原理NAT 的工作原理是通过改变 IP 数据包的源 IP 地址和目的 IP 地址来实现地址转换。
根据 IP 数据包的源 IP 地址和目的 IP 地址,NAT 可以分为三种不同类型:静态 NAT、动态 NAT 和 PAT(端口地址转换)。
1.静态 NAT:静态 NAT 是一种一对一的地址转换方式,将一个内部 IP地址映射为一个公网 IP 地址。
静态 NAT 的映射关系在 NAT 设备中是预先配置的,无法动态改变。
2.动态 NAT:动态 NAT 是一种多对多的地址转换方式,将内部 IP 地址映射为一组可用的公网 IP 地址中的一个。
动态 NAT 的映射关系是动态生成和维护的,它通常与会话表(session table)一起使用,以追踪内部主机与外部网络之间的通信。
3.PAT:也被称为端口地址转换(Port Address Translation),PAT 是一种特殊类型的动态 NAT。
在 PAT 中,除了改变 IP 地址外,还会改变源端口号或目的端口号。
通常,PAT 使用一个公网 IP 地址用于多个内部主机的地址转换,并使用不同的端口号来区分这些主机。
NAT 的主要应用NAT 技术在计算机网络中有很多重要的应用。
下面列出了一些常见的应用场景:1.IP 地址共享和节约:由于 IPv4 地址资源有限,NAT 技术可以将多个内部主机共享一个公网 IP 地址,从而节约了 IP 地址的使用。
这种方式被广泛用于家庭网络和小型办公网络中。
2.网络安全:NAT 在一定程度上提供了网络安全性,因为它隐藏了内部网络的真实 IP 地址。
外部网络无法直接访问内部网络中的主机,需要经过NAT 设备进行地址转换。
NAT技术基本原理与应⽤1 概述1.1 简介1.1.1 名词解释公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(⽹络信息中⼼)或者ISP(⽹络服务提供商)分配的地址,对外代表⼀个或多个内部局部地址,是全球统⼀的可寻址的地址。
私有IP地址:也叫内部地址,属于⾮注册地址,专门为组织机构内部使⽤。
因特⽹分配编号委员会(IANA)保留了3块IP地址做为私有IP地址:10.0.0.0 ——— 10.255.255.255172.16.0.0——— 172.31.255.255192.168.0.0——— 192.168.255.255地址池:地址池是有⼀些外部地址(全球唯⼀的IP地址)组合⽽成,我们称这样的⼀个地址集合为地址池。
在内部⽹络的数据包通过地址转换到达外部⽹络时,将会在地址池中选择某个IP地址作为数据包的源IP地址,这样可以有效的利⽤⽤户的外部地址,提⾼访问外部⽹络的能⼒。
1.1.2关于NATNAT英⽂全称是“Network Address Translation”,中⽂意思是“⽹络地址转换”,它是⼀个IETF(Internet Engineering Task Force, Internet⼯程任务组)标准,允许⼀个整体机构以⼀个公⽤IP(Internet Protocol)地址出现在Internet上。
顾名思义,它是⼀种把内部私有⽹络地址(IP地址)翻译成合法⽹络IP地址的技术,如下图所⽰。
因此我们可以认为,NAT在⼀定程度上,能够有效的解决公⽹地址不⾜的问题。
简单地说,NAT就是在局域⽹内部⽹络中使⽤内部地址,⽽当内部节点要与外部⽹络进⾏通讯时,就在⽹关(可以理解为出⼝,打个⽐⽅就像院⼦的门⼀样)处,将内部地址替换成公⽤地址,从⽽在外部公⽹(internet)上正常使⽤,NAT可以使多台计算机共享Internet连接,这⼀功能很好地解决了公共 IP地址紧缺的问题。
通过这种⽅法,可以只申请⼀个合法IP地址,就把整个局域⽹中的计算机接⼊Internet中。
NAT的工作原理及应用1. NAT的基本概念网络地址转换(Network Address Translation,简称NAT)是一种在网络层上进行的地址转换技术,用于解决IPv4地址不足的问题。
NAT通过将内部网络的私有IP地址和外部网络的公有IP地址进行映射转换,使得内部网络可以通过一个公有IP地址访问外部网络。
2. NAT的工作原理NAT的工作原理可以归纳为三个主要步骤:步骤一:源地址转换(Source Address Translation)当内部网络中的主机向外部网络发送数据时,NAT会将数据包的源IP地址替换为公有IP地址。
这样,外部网络接收到数据包时,会将其回复发送给公有IP地址,然后NAT再将回复的数据包的目的IP地址转换为内部主机的私有IP地址。
步骤二:目的地址转换(Destination Address Translation)当外部网络中的主机向内部网络发送数据包时,NAT会将数据包的目的IP地址替换为内部主机的私有IP地址。
这样,数据包达到NAT后,它会将数据包的源IP地址转换为公有IP地址,并将数据包发送到内部网络中的目的主机。
步骤三:端口转换(Port Translation)NAT还可以进行端口转换,通过改变数据包中的端口号实现多个内部主机共享一个公有IP地址。
这是因为在一个IP地址下,端口号是唯一的,通过改变端口号,不同的数据包可以被正确路由到不同的内部主机。
3. NAT的应用场景场景一:家庭网络在家庭网络中,通常只有一个公有IP地址,但是家庭中有多台设备需要连接到外部网络。
NAT通过 IP地址转换和端口转换技术,使得多台设备能够共享一个公有IP地址访问外部网络。
这样,家庭网络中的设备可以通过NAT访问互联网,实现网络连通。
场景二:企业网络在企业网络中,NAT可以起到保护内部网络的作用。
通过将内部主机的私有IP地址转换为企业的公有IP地址,外部网络无法直接访问内部网络,从而提高了网络的安全性。
NAT的原理及应用1. NAT的定义网络地址转换(Network Address Translation,简称NAT)是一种网络协议,用于将私有IP地址转换为公共IP地址,以便在互联网上进行通信。
NAT在计算机网络中起到了重要的作用,它使得多个设备可以通过共享一个公共IP地址来访问互联网。
2. NAT的原理NAT的原理是通过在私有网络和公共网络之间建立一种映射关系,将私有网络内的IP地址和端口号转换为公共网络的IP地址和端口号。
这样,在公共网络中就可以唯一标识每个数据包,从而实现了私有网络内的设备与互联网之间的通信。
具体而言,NAT的原理包括以下几个步骤:•地址转换:将私有网络内部的IP地址转换为公共网络的IP地址。
这是NAT最基本的功能,通过将私有IP地址替换为公共IP地址,实现了对外通信的能力。
•端口转换:私有网络内的多个设备可能使用相同的端口号进行通信,但在公共网络中,同一个IP地址必须使用不同的端口号进行区分。
因此,NAT会将私有网络内设备的端口号转换为公共网络的唯一端口号,以实现数据包在公共网络中的唯一标识。
•连接跟踪:NAT会为每个建立的连接维护一张映射表,记录私有网络内的设备与公共网络的映射关系。
当收到返回数据包时,NAT可以根据映射表将数据包正确转发到私有网络内的设备。
3. NAT的应用场景NAT在实际网络中有着广泛的应用,特别是在企业内部网络和家庭网络中。
下面列举了几个常见的NAT应用场景:•共享上网:通过NAT,多个设备可以通过共享一个公共IP地址来访问互联网。
这在家庭网络和小型企业中尤为常见,一台路由器作为NAT设备,为多台设备提供上网功能。
•端口映射:NAT还可以用于端口映射,将公共网络中的某个端口号映射到私有网络中的指定IP地址和端口号。
这在需要从公共网络访问私有网络的服务器时非常有用,如Web服务器、FTP服务器等。
•防火墙:NAT也可以作为防火墙的一部分,通过限制私有网络内设备对外访问的能力,保护内部网络的安全性。
NAT的原理和应用1. NAT的定义NAT(Network Address Translation)即网络地址转换,是一种网络协议,用于在IP网络中转换网络地址。
2. NAT的原理NAT通过在网络路由器上进行地址转换,将内部网络的私有IP地址转换为外部网络的公共IP地址,从而实现内部网络和外部网络之间的通信。
3. NAT的工作方式NAT主要分为三种工作方式:静态NAT、动态NAT和PAT(Port Address Translation)。
3.1 静态NAT静态NAT将内部网络的一个私有IP地址映射到外部网络的一个公共IP地址上,并且映射关系固定不变,一对一的映射关系。
3.2 动态NAT动态NAT将内部网络的若干私有IP地址映射到外部网络的一个或多个公共IP 地址上,并且映射关系可以根据需要动态地改变。
3.3 PATPAT是一种特殊的动态NAT,除了将内部网络的私有IP地址转换为外部网络的公共IP地址外,还会将内部网络的端口号映射到不同的外部网络端口上,从而实现多对一的映射关系。
4. NAT的应用场景NAT主要在以下几个方面得到广泛应用:4.1 IP地址转换NAT可以将内部网络使用的私有IP地址转换为外部网络的公共IP地址,解决了IPv4地址不足的问题。
4.2 内部网络隔离通过NAT,内部网络可以使用私有IP地址,使得内部网络的具体拓扑结构对外部网络不可见,增强了内部网络的安全性。
4.3 网络负载均衡NAT可以将外部网络对同一个公共IP地址的请求转发到不同的内部服务器上,实现网络负载均衡,提高网络性能和服务可靠性。
4.4 网络地址转换NAT还可以在不同网络协议之间进行地址转换,实现不同类型网络的互联互通,如IPv4与IPv6之间的转换。
5. NAT的优缺点NAT作为一种网络协议,在实际应用中具有一定的优点和缺点。
5.1 优点•解决了IPv4地址不足的问题,延缓了IPv4地址耗尽的时间。
•增强了内部网络的安全性,对外部网络隐藏了内部网络的具体拓扑结构。
NAT的原理及主要应用1. NAT的原理网络地址转换(Network Address Translation,NAT)是一种网络通信协议,它的主要功能是将私有网络中的IP地址转换为公网IP地址,实现内网与外网之间的通信。
NAT的原理可以简单概括为以下几个步骤:1.NAT设备收到内网主机发出的数据包。
2.NAT设备检查源IP地址,并从NAT表中查找与之对应的公网IP地址。
如果没有找到匹配项,则为该内网主机分配一个公网IP地址。
3.NAT设备修改数据包的源IP地址为映射后的公网IP地址,同时在NAT表中记录映射关系。
4.NAT设备将修改后的数据包发送到公网。
5.外部主机收到数据包后,将其返回给公网IP地址。
6.NAT设备收到返回的数据包后,检查目标IP地址,并根据NAT表中的映射关系,将数据包的目标IP地址修改为内网主机的IP地址。
7.NAT设备将修改后的数据包发送到对应的内网主机。
2. NAT的主要应用2.1 内网访问外网NAT最常见的应用场景就是实现内网中的主机访问互联网。
当内网主机请求访问外部服务器时,NAT设备会将请求数据包的源IP地址修改为公网IP地址,这样外部服务器就能正确地将响应发送回内网主机。
2.2 隐藏内网拓扑结构NAT能够隐藏内网的拓扑结构,提高了网络的安全性。
因为NAT设备在转换IP地址时,会修改数据包的源地址和目标地址,使得外部主机无法直接访问到内网,从而达到了一定的安全防护效果。
2.3 解决公网IP短缺问题由于IPv4地址资源有限,公网IP地址数量有限,而内网中的主机数量通常较多。
NAT通过有效地利用公网IP地址,将多个内网主机使用同一个公网IP地址进行通信,解决了公网IP短缺的问题。
2.4 端口转发NAT还可以实现端口转发,将外部主机的请求转发到内网特定主机的指定端口上。
这在服务器架设和远程访问等场景中非常有用。
NAT会根据设置的映射规则,将外部主机的请求转发到对应的内网主机。
2009年1月第14卷第1期 西 安 邮 电 学 院 学 报JOURNAL OF XI ’AN UN IV ERSIT Y OF POST AND TEL ECOMMUN ICA TIONS Jan.2009Vol 114No 11收稿日期:2008-10-21作者简介:李广华(1981-),男,河南洛阳人,西安邮电学院通信技术研究所硕士研究生;朱志祥(1959-),男,天津人,西安邮电学院通信技术研究所教授;李振兴(1976-),男,山西太原人,西安邮电学院通信技术研究所硕士研究生。
NA T 技术基本原理及其在实际中的应用李广华,朱志祥,李振兴(西安邮电学院通信技术研究所,陕西西安 710061)摘要:网络地址翻译(NA T )技术是Internet 上最常见的网络技术之一。
正确检测识别NA T 的具体实现形式,无论对于网络安全还是网络应用都是十分必要的。
论文给出了NA T 技术的基本原理和类型,深入分析了NA T 穿越技术在P2P 中的应用,并描述应用程序穿越中间设备建立P2P 通讯时可能产生的安全问题。
关键词:NA T ;公有地址;私有地址;地址映射;地址翻译中图分类号:TP393 文献标识码:A 文章编号:1007-3264(2009)01-0091-05 随着Internet 的飞速发展,网上丰富的资源产生着巨大的吸引力,接入Internet 、访问Internet 已经成为大众需求。
这样就面临两个最迫切的问题:IP 地址的匮乏和路由规模的扩大。
对此,长期的和短期的解决方案都有所发展,那就是网络地址转换(NA T )和IPv6技术。
几年前,人们就意识到目前的IPv4地址空间将会耗尽。
在IPv6技术上在研究中切还未完全取代现有的IPv4的情况下,短期解决方案NA T 技术对于缓解目前的地址缺乏问题,具有积极意义。
NA T 核心就是要把一个私有地址域里的地址转换为可路由的全局因特网地址,这样就使得内部主机访问因特网得以实现。
1 基本原理及其类型1.1 基本原理NA T (Network Address Translation ,网络地址转换),它允许一个机构以一个公有IP 地址出现在Internet 上。
将局域网内每个节点的私有地址转换成一个公有IP 地址,反之亦然。
而且,它可以应用于防火墙技术,把个别地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备。
同时,它可以帮助网络超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP 地址的使用。
NA T 技术能帮助解决令人头疼的IP 地址紧缺的问题,实现公网地址和私网地址之间的映射,而且能使内部和外部的网络隔离,提供一定程度的网络安全保障。
它解决问题的办法是:在内部网络中使用内部地址,通过NA T 把内部地址翻译成合法的IP 地址在Internet 上使用,其具体的做法是把IP 包内的地址域用合法的外部IP 地址来替换。
工作的基本流程可以从两个方面来概括:(1)当私网内的IP 包经NA T 流入公网时,NA T 将此IP 包的源IP 地址改为NA T 接口上的一个公网地址。
(2)当公网中的IP 包经NA T 访问私网资源时,NA T 将此IP 包目的地址改为某一私网IP 地址。
下面通过一个网络结构图举例说明NA T 技术工作流程。
网络结构图,如图1所示。
由图1可见,NA T A 后的主机A (内网地址为192.168.2.50)需要向公网中的Proxy 通信,主机从5000端口发送消息至NA T A 。
NA T A 发现此IP地址,从空闲的端口中分配一个给这个连接(比如8000),并在申报中建立了192.168.2.50:5000和202.100.0.1:8000之间的映射。
当Proxy 回消息到NA T A 的8000端口时,NA T A 就将此包的地址改为192.168.2.50:5000。
这样就可以实现私网和公网的通信了。
图1 网络结构图 当若在主机A 向Proxy 发起消息前Proxy 向地址202.168.2.50:8000发送消息,NA T 不知道将这个地址和端口映射到哪个内网地址上。
这时NA T 会将此消息丢弃。
因为NA T 映射的地址可能是动态的,所以此时Proxy 无法知道确切的端口号。
1.2 NA T 技术的类型NA T 有三种类:静态NA T (static NA T )、NA T池(pooled NA T )和端口NA T (PA T )。
其中,静态NA T 设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。
而NA T 池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。
PA T 则是将多个内网地址映射到同一个外网地址的不同端口上。
根据不同的需要,各种NA T 方案都是有利有弊。
1.2.1 NA T 池使用NA T 池,可以从未注册的地址空间中提供被外部访问的服务,也可以从内部网络访问外部网络,而不需要重新配置内部网络中的每台机器的IP 地址。
采用NA T 池意味着可以在内部网络中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP 地址。
而静态NA T 则只能形成一一对应的固定映射方式。
应引起注意的是,NA T 池中动态分配的外部IP 地址全部占用后,后续的NA T 翻译请求将会失败。
庆幸的是,许多有NA T 功能的路由器有超时配置功能。
如Cisco4700中配置成开始15分钟后自动删除当前的NA T 进程,为后续的NA T 申请预留出外部IP 地址。
通过实验表明,一般的外部链接不会很长,所有短的时间阀值也是可以接受的。
当然用户可以自行调节时间阀值,以满足各自的需求。
NA T 池提供很大灵活性的同时,也影响到网络原有的一些管理功能。
例如,一些管理系统要利用IP 地址来跟踪设备的运行情况。
但使用NA T 之后,意味着那些被翻译的地址对应的内部地址是变化的,今天可能对应一台工作站,明天可能对应一台服务器。
这给网络管理带来了麻烦。
一个可行的解决方案就是把划分给NA T 池的那部分地址在网络管理平台上标记出来,对于这些不影响管理信号的地址不予处理,就如同他们被关掉了一样。
1.2.2 PA TPA T 在远程访问产品中得到了大量的应用,特别是在远程拨号用户使用的设备中。
PA T 可把内部的TCP/IP 映射到外部一个注册IP 地址的多个端口上,还可支持同时连接64500个TCP/IP 、UDP/IP ,但实际可支持的工作站个数会少一些。
因为许多Internet 的应用,如HTTP ,实际上是有许多小的连接所组成的。
在Internet 中使用PA T 时,所有不同的TCP・29・西 安 邮 电 学 院 学 报 2009年1月和UDP信息流看起来仿佛都来源于同一个IP地址。
这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,通过PA T将多个连接接入Internet。
实际上,许多远程访问设备支持基于PPP的动态IP地址。
这样,ISP甚至不需要支持PA T,就完全可以做到多个内部IP地址公用一个外部IP地址上Internet。
虽然会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用PA T还是很值得的。
2 STUN穿越技术在P2P中的应用在P2P穿越NA T设备的研究中,很多学者提出了解决方案,也产生了一些通信协议。
应用最为广泛的是STUN(Simple Traversal of User Datagram Protocol),下面以STUN协议为例详细说明NA T 穿越的过程。
(1)STUN,简单UDP包穿越协议,它使用一种简单的客户/服务器模型,确定NA T类型以及发现NA T上映射的IP地址和端口号。
根据该协议的描述,STUN Client使用UDP数据报与STUN Server 通信。
在多次通信中,STUN Client根据需要变化目的地址,STUN Server变化源地址,最终确定STUN Client是否处在NA T设备之后,并确定该NA T设备的类型,同时得到STUN Client在NA T 上映射的IP地址和端口。
它通过这种机制得到NA T设备给UDP通信分配的IP地址和端口号。
STUN协议中有两个重要的字段需要介绍: MAPPED-ADDRESS和CHAN GE-REQU EST。
MAPPED-ADDRESS总是出现在STUN Server对STUN Client的绑定响应中,表示STUN Server在绑定请求中看到的IP地址和端口,即STUN Client 经过NA T映射后的IP地址和端口号。
CHAN GE -REQU EST只能在STUN Client发给STUN Server的绑定请求中出现,它包含两个标志来控制STUN Server从不同的IP地址和端口发送绑定响应。
STUN协议最大的优点是无需现有NA T设备做任何改动,并且STUN方式可在多个NA T串联的网络环境中使用。
STUN的局限性在于需要客户端支持STUN Client的功能,同时不支持对称NA T的穿越。
(2)P2P利用STUN穿越NA T:位于NA T后面终端A与B要穿越NA T直接通讯,可以借助在公网上的第三者Server来帮助。
穿越NA T的情况分为为两种方式:(1)一方在NA T之后,一方在公网上。
这种情况相对简单,只要让NA T之后的终端先发起通讯, NA T就没有作用了,它可以从Server上取得另一个Peer的地址,主动连接,回来的数据包就可以方便地穿越NA T。
(2)双方都在NA T之后,连接的成功与否与两个NA T的类型有关。
主要的思路的先通过终端与Server的连接,获得两个终端在NA T外部的地址(IP与端口号),再由终端向对方的外部地址发邀请包,获取自己与对方通讯的外部地址,俗称为“打洞”。
关键是获取了NA T外部映射的地址,就可以发包直接沟通,建立连接。
但当一方是对称型,另一方是Port Restricted或对称型时,无法有效获取外部地址,邀请包无法到达对方,也就无法穿越NA T。
具体的分析可以根据两个NA T的类型分成若干情况分析,这里给一般的穿越例子。
图2 P2P穿越NA T(两个主机都在NA T内)(3)实例:UDP穿越NA T:A登录Server,NA T A分配端口11000,Server 得到A的地址为100.10.10.10:11000B登录Server,NA T B分配端口22000,Server 得到B的地址为200.20.20.20:22000此时B会把直接来自A的包丢弃,所以要在NA T B上打一个方向为A的洞,那么A就可以向200.20.20.20:22000发送数据了。