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 ...
随机推荐
- CentOS7 安装中文输入法
CentOS7输入中文,打开终端,使用管理员权限 su 输入管理员密码,回车 输入 yum install ibus-libpinyin 回车,耐心等待安装完,然后重启系统 重启完后再进行前面的步骤 ...
- Mac下快速搭建PHP开发环境
最近做了一个后端的项目,是用PHP+MySQL+Nginx做的,所以把搭建环境的方法简单总结一下. 备注: 物料:Apache/Nginx+PHP+MySQL+MAMP Mac OS 10.12.1 ...
- 【教程】在UEFI启动方式下,通过GRUB2引导,直接从硬盘ISO文件安装Windows10和Ubuntu双系统
本文为作者原创,允许转载,但必须注明原文地址: https://www.cnblogs.com/byronxie/p/9949789.html 动机 最近在自学MIT6.828 Operating S ...
- spring3.0框架检测方法运行时间测试(转)
主要利用了Spring AOP 技术,对想要统计的方法进行横切处理,方法执行前开始计时,方法执行后停止计时,得到计时方法就是该方法本次消耗时间. 步骤: 首先编写自己的Interceptor类来实现M ...
- Maven三种仓库的配置
转自:https://www.cnblogs.com/jack1995/p/6925879.html Maven三种仓库的配置 1 本地仓库的配置 在第一篇中我们介绍过,Maven的仓库有三类,这里不 ...
- SpringBoot学习(五)-->SpringBoot的核心
SpringBoot的核心 1.入口类和@SpringBootApplication Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的J ...
- TensorFlow(2)Softmax Regression
Softmax Regression Chapter Basics generate random Tensors Three usual activation function in Neural ...
- sql多表数据查询
有时候在sql遇到一次查询多张表的全部数据例如:创建一张虚拟表A ,表A中需要有表B和表C的全部数据(表B和表C并集,如图) 有两种方法一种是使用: 1):union,不过这种查询速度比较慢 /* B ...
- 【转载】SQL语句用一个表的数据更新另一个表
在Sqlserver的维护更新操作中,有时候涉及到Update操作,其中有一种情况是根据特定的条件,以一个表中的数据更新另一个表的数据,此时涉及到两个表之间的关系以及操作,此处介绍2种更新方法. (1 ...
- win10 uwp 商业游戏 1.2.1
上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏 希望大家在看这篇文章之前先看win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏. 修改数值 可以从上一篇的博客的游戏看到升级 ...