NAT穿越(一) NAT类型
NAT分为四种类型:
(1)完全透明NAT(Full Cone NAT):
从内部主机 (IN IP ipa) +端口(IN PORT porta)
发送的数据映射为 IP(OUT IP IPA)和端口(OUT PORT PORTA) 发送到外网
从服务器直连到映射的 IP(OUT IP IPA)和端口(OUT PORT PORTA)上,数据将会被转发到内部主机(IN IP ipa), (IN PORT porta)上。
举例来说:内部的机器Client1(ipa:porta)连接Server1,经过NAT后,NAT会打开一个端口(IPA:PORTA)。
外网任何发到这个打开的端口(IPA:PORTA)的UDP数据包都可到达Client1(ipa:porta),不管是不是Server1发过来的。
(2)IP受限NAT(Restricted Cone):
从相同内部主机 (IN IP ipa) +端口(IN PORT porta) 发送的数据经过NAT后,映射为相同的IP(OUTIP IPA)和端口(OUT PORT PORTA)发送到外网设备Y。
和完全NAT不同的是,只有从外部机器Y发过来的请求可以被转发到内部主机(IN IP ipa) +端口(IN PORT porta) ,其他机器发过来的数据不能转发到内部机器。
也就是说进内部网的数据包的PORT不受限制, IP受限制。
举例来说:这种NAT内部的机器Client1(ipa:porta)连接Server1,经过NAT后,NAT会打开一个端口(IPA:PORTA)。
然后Server1可以用任何端口和Client1(ipa:porta)通信,其他的外网IP不行。
(3)端口(和IP)受限NAT(Port Restricted Cone)
与IP受限NAT不同的是,只有当外部主动请求的的源IP和端口 和 内部网发送请求的目的IP和端口相同时才能通信。
举例:这种NAT内部的机器Client1(ipa:porta)连接Server1,经过NAT后,NAT会打开一个端口(IPA:PORTA)。
然后Server1可以用原来的端口和Client1(ipa:porta)通信。其它端口和外网IP发送给(IPA:PORTA)的数据包会被NAT丢弃。
(4)对称NAT
如果发送的包的目的IP 和 PORT相同,那么映射 IP 和 PORT将相同。内部的同一台机器,同一个端口如果目的地址不同,那么映射的端口也不同,所以只有他主动连的服务器才可能知道他的映射后端口,别的服务器如果想连他只能靠猜测端口。
对于这种NAT,连接不同的外部目标(IP或端口不同),原来NAT打开的映射端口会变化。
举例:这种NAT内部的机器Client1(ipa:porta)连接Server1,经过NAT后,NAT会打开一个端口(IPA:PORTA)。
然后Server1只有在当前连接上才能与Client1(ipa:porta)通信。因为内部机器Client1(ipa:porta)再次连接Server1时,经过NAT后,NAT会打开另一个端口(IPA:PORTB),导致其它外部IP发给(IPA:PORTA)的数据包被NAT丢弃。
总结:前面3种NAT,映射 PORT 和 IP,是根据发送包的的内部网的IP和端口决定的。如果内网IP和端口相同,那么映射后的端口和地址是固定。这个功能为我们的穿透NAT提供了条件,可以实现P2P。
对于对称型NAT,打洞后的映射 地址和端口变得不可靠,难穿透。需借助TURN服务进行转发。
NAT穿越(一) NAT类型的更多相关文章
- NAT原理与NAT穿越
		最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下. 先做一个约定: 内网A中有:A1(192.168.0.8).A2(192.168.0.9)两用户 网关X1(一个NAT设备)有 ... 
- IPFS: NAT traversal(NAT穿越)
		IPFS是一个p2p网络,那么一定绕不开的一个问题就是NAT穿越.之前的文章里面也提到过IPFS网络连通性使用的ICE NAT穿越框架,本文简单介绍一下什么是NAT. 为什么有NAT技术? NAT ... 
- VOIP NAT穿越之SIP信令穿越
		本文原创自 http://blog.csdn.net/voipmaker 转载注明出处. 本文是VOIP通信NAT系列专题的第三篇, 本文论述NAT对SIP协议穿越的影响.SIP协议是基于文本的,而 ... 
- P2P网络穿越 NAT穿越
		http://blog.csdn.net/mazidao2008/article/details/4933730 ——————————————————————————————————————————— ... 
- 转:WebRTC技术及应用2 – NAT穿越技术的使用
		评:webrtc自带的打洞,穿透协议. 转: http://www.unclekevin.org/?p=924 959 views WebRTC技术及应用2 – NAT穿越技术的使用 发表回复 (题图 ... 
- ICE协议下NAT穿越的实现(STUN&TURN)
		正文: 一. 首先来简单讲讲什么是NAT? 原来这是因为IPV4引起的,我们上网很可能会处在一个NAT设备(无线路由器之类)之后.NAT设备会在IP封包通过设备时修改源/目的IP地址. 对于家用路由器 ... 
- [ipsec] 特别硬核的ike/ipsec NAT穿越机制分析
		〇 前言 这怕是最后一篇关于IKE,IPSEC的文字了,因为不能没完没了. 所以,我一直在想这个标题该叫什么.总的来说可以将其概括为:IKE NAT穿越机制的分析. 但是,同时它也回答了以下问题: ( ... 
- (转)NAT与NAT穿越学习总结--ICE过程讲的不错
		转:http://cgs1999.iteye.com/blog/1994072 1.引言网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防 ... 
- SOCKET 实现NAT 穿越
		在当前IPv4NAT盛行的网络环境下,两个用户要直接进行P2P连接是非常困难的.较好的解决办法是借助含公网的用户或是服务器中介实现P2P连接. NAT:Network Address Translat ... 
随机推荐
- Python Selenium 常用方法总结(不断补充)
			还有此篇内容也丰富Selenium常见元素定位方法和操作的学习介绍 selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url 实 ... 
- linux 命令 — cut
			cut 以列的方式格式化输出 依赖定界符 cut -f field_list filename 以默认定界符(tab,制表符)分割文件的列,输出指定的列field_list,field_list由列号 ... 
- Linux官方源、镜像源汇总
			本文收录在日常运维杂烩系列 一.站点版 1.企业站 搜狐:http://mirrors.sohu.com/ 网易:http://mirrors.163.com/ 阿里云:http://mirrors. ... 
- Linux常用性能工具功能、用法及原理(一)
			Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息. 按实现原理分,可分为基于计数器和跟踪以及剖析.含义如下: 计数器 ... 
- DLCI 简介
			数据链路连接标识(Data Link Connection Identifier) 帧中继协议是一种统计复用的协议,它在单一物理传输线路上能够提供多条虚电路.每条虚电路都是用DLCI(Data Lin ... 
- SpringBoot学习(一)-->Spring的发展
			一.Spring的发展 1.Spring1.x 时代 在Spring1.x时代,都是通过xml文件配置bean,随着项目的不断扩大,需要将xml配置分放到不同的配置文件中,需要频繁的在java类和xm ... 
- 更新计算机名称后TFS文件无法迁出
			本人最新刚刚最新了一下计算机名称,但在迁出TFS文件时报如下错误: 如果最近已重命名此计算机,则可通过运行“tf workspaces /updateComputerName:oldComputerN ... 
- 无法将文件“..\bin\Debug \**.dll”复制到“bin\**.dll”。对路径“bin \**.dll”的访问被拒绝。
			1.方法一: 将bin的只读属性去掉,就OK. 2.方法二: 直接关掉项目,重新打开. 
- [PHP] PHP在CLI环境下的错误日志
			1.display_errors = Off;//控制php是否输出错误;在生产环境中输出会泄露敏感信息;建议记录错误而不是将它们发送到STDOUToff :不显示任何错误;stderr :向STDE ... 
- 【Spring】DispatcherServlet的启动和初始化
			使用过SpringMVC的都知道DispatcherServlet,下面介绍下该Servlet的启动与初始化.作为Servlet,DispatcherServlet的启动与Serlvet的启动过程是相 ... 
