网络相关记录-NAT穿透
来源:互联网 发布:mcs51单片机和stc 编辑:程序博客网 时间:2024/06/05 08:00
-----------------------------------------------------------
信息大爆炸,记不住的时候,就记录一下
-----------------------------------------------------------
背景简介
Internet暴涨,可用IP地址不足,路由表不断增大。于是就诞生了NAT穿透
NAT穿透技术简介
让 多个IP 可以通过 1个IP访问Internet,从而节省IP地址,并隐藏真实地址,提高安全性。
如何进行
通过端口映射的方式,将公网IP转成私有IP。
不同NAT设备对NAT穿透的实现方式
1.完全锥形(Full Cone)NAT
处于不同内网的主机A和主机B,各自先连接服务器,从而在各自NAT设备上打开了一个“孔”,服务器收到主机A和主机B的连接后,知道A与B的公网地址和NAT分配给它们的端口号,然后把这些NAT地址与端口号告诉A与B,由于在完全锥形NAT的特点,A和B给服务器所打开的“孔”,能给别的任何的主机使用。
故A与B可连接对方的公网地址和端口直接进行通信。
服务器在这里充当“介绍人”,告诉A与B对方的地址和端口号。
这时主机A向主机B的公网IP发送的信息导致NAT A打开一个处于主机A的和主机B之间的会话,与此同时,NAT B也打开了一个处于主机B和主机A的会话。
一旦这个新的UDP会话各自向对方打开了,主机A和主机B之间就可以直接通信了。
NAT设备将在一定时间后关闭UDP的一个映射,所以为了保持与服务器能够一直通信,服务器或客户端必须要周期性地发送UDP包,保持映射不被关闭。
2.受限制锥形(Restricted Cone)NAT
A和B还是要先连接服务器,服务器发送A和B的地址和端口信息给A和B,但由于受限制锥形NAT的特点,他们所打开的“孔”,只能与服务器通信。要使他们可以直接通信,解决办法如下:
假如主机A开始发送一个UDP信息到主机B的公网地址上,与此同时,它又通过服务器中转发送了一个邀请信息给主机B,请求主机B也给主机A发送一个UDP信息到主机A的公网地址上。
3.端口受限制锥形(Port Restricted Cone)NAT
对于该类型的NAT,解决办法跟上面的方法一样。
4.对称型(Symmetric)NAT
对称型NAT,对于不同的外网主机地址,它都会分配不同的端口号,所以进行UDP打孔比较困难,但也可以进行端口预测打孔,不过不能保证成功。
以上的穿透NAT,是对NAPT来进行穿透,主要是针对UDP协议。TCP协议也有可能,但是可行性非常小,要求更高。并且,语音视频通信是用UDP传输的,故针对TCP的NAT穿透在这里不作讨论。基础NAT不修改经过的数据包的端口号,它们可以看作是完全锥形NAT的精简版本,即基础NAT也可以被穿透。
5.花生壳NAT-DDNS穿透
花生壳DDNS 是将用户的动态IP 地址映射到一个固定的域名上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP 地址传送给位于服务商主机上的服务器程序,服务项目器程序负责提供 DNS 服务并实现动态域名解析。DDNS 的主要作用就是捕获用户每次变化的 IP 地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来与用户交流了。
- 网络相关记录-NAT穿透
- 网络穿透(nat-udp) 学习记录
- NAT穿透相关知识
- TCP NAT 穿透原理相关文档
- p2p网络中的NAT穿透技术----常见NAT穿越解决方案
- p2p网络中的NAT穿透技术----常见NAT穿越解决方案
- NAT穿透
- NAT穿透
- NAT 穿透
- Nat 穿透
- NAT穿透
- NAT穿透
- NAT穿透
- NAT穿透
- NAT穿透
- NAT穿透
- nat穿透
- NAT穿透
- linux定时任务之crontab详解
- Java中Date,Long,String三种类型间的互相转化
- 常用正则表达式 如用户名 密码 邮箱 email
- VS ERROR LNK 1201 ,LINK could not write to the program database (PDB) for the output file
- 关于shell文本处理
- 网络相关记录-NAT穿透
- Linu基本命令总结
- [WinForm] VS2010发布、打包安装程序(超全超详细)
- spark运行简单的demo程序
- 第五天04 JAVA基础语法(认识对象--对象指定与相等性)(学习笔记)
- oracle
- 【java基础 11】java集合框架学习
- leetcode-124. Binary Tree Maximum Path Sum
- 手势 Swift