NAT类型及打洞原理
NAT是Network Address Translation的缩写,指的是主机地址与公网IP的映射规则;就是说比如你有一个pc,连到局域网,然后你要访问163.com,这时候局域网会你的ip和打开的地址映射成1个"公网IP:Port"去访问163.com;然后163.com发数据给你,它发的地址一定是公网IP:Port;这时候局域网会把这个“公网IP:Port”的数据转发给你pc;实际上可能更加复杂,可能需要多级映射:及你pc处的位置是局域网的局域网。
这样看一下NAT类型(公网IP:Port映射规则)
1.公网IP,没有映射规则
2.Full Cone NAT(开放式),是指你pc打开的端口,映射到“公网IP:Port”是固定的
3.Restricted Cone NAT(地址限制),是指你pc打开的端口,只有你发送了数据的地址才打开;比如从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8:4000先给服务器C 6.7.8.9发送一个数据报后,192.168.0.8才能收到6.7.8.9发送到1.2.3.4:62000的数据报。
4.Port Restricted Cone NAT(端口限制),是指你pc打开的端口,只有你发送了数据IP:Port才打开;比如从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先向外部主机地址端口6.7.8.9:8000发送一个数据报后,192.168.0.8才能收到6.7.8.9:8000发送到1.2.3.4:62000的数据报。
5.Symmetric NAT (完全对称型),是指你pc打开的端口,映射到“公网IP:Port”对应不同公网Port或Port,映射的Port都不一样
打洞原理
首先tcp需要3次握手建立连接,以流式通讯,不存在打洞一说,打洞需要服务器,来获取自己设备映射的公网IP及端口,一般使用UDP;还有最好知道自己的网络类型,这个使用stun服务器,原理就是stun服务器打开两个IP(公网),每个IP打开两个端口,设备用同一个端口访问一个IP:Port,服务器从另外3个地方发送数据判断是否地址受限或端口受限,设备收不到是Symmetric NAT类型。
打洞一端为公网或者Full Cone NAT,不需要打洞;打洞一端为Restricted Cone NAT,两边互相发数据,Restricted Cone NAT端就可以收到数据的,然后Restricted Cone NAT再端往接受数据的IP:Port发数据就通了,两端都为Port Restricted Cone NAT;同时往映射地址发数据也通了,两端都为Symmetric NAT是肯定不能打洞的;一端为Port Restricted Cone NAT,一端为Symmetric NAT ;由于Symmetric NAT映射的Port不一样,也不好打洞,想打洞需要Port Restricted Cone NAT往一个个端口试发送数据,这样成功率很低
NAT类型及打洞原理相关推荐
- NAT类型和打洞流程
一.NAT 1. 含义 NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使 ...
- P2P穿透四种NAT类型
P2P穿透&四种NAT类型 以下对四种NAT类型分别予以说明: 1.全锥形NAT IP.端口都不受限.只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他 ...
- 穿透NAT类型以及STUN、TURN简单介绍
穿透NAT类型以及STUN.TURN简单介绍 概述 NAT的副作用以及解决方案 NAT有4种不同的类型 锥形和对称形NAT的区别 STUN和TURN的简单介绍 STUN 基本思想 STUN Serve ...
- tutk-p2p /NAT / p2p 如何打洞
TUTK p2p穿透的使用介绍: https://blog.csdn.net/jakejohn/article/details/87445555 打孔,nat 理论概念的解读 http://itind ...
- 转载一篇讲NAT类型比较好的科普文
转载于:http://lifeofzjs.com/blog/2014/07/19/how-p2p-in-symmetric-nat/ 最近在研究NAT穿越实现p2p技术,这个技术有很多广泛的应用,比如 ...
- 什么是NAT?NAT类型有哪些?
NAT(Network Address Translation,网络地址转换) 是一种地址转换技术,它可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的.NAT作 ...
- stun检查nat类型
nat(Session Traversal Utilities for NAT)会话穿越应用程序,可以让位于nat后的客户端找出自己的公网地址以及对应的Internet端口,最重要的是可以判断自己处于 ...
- P2P内网穿透之Nat类型介绍及Nat类型检测16种NAT组合穿透操作指南整理
目录 根据RFC 3489规定 Nat共分以下类型: 第一部分: NAT类型介绍 Full Cone NAT: Restricted Cone NAT: Port Restricted Cone NA ...
- Types of NAT and How to determine the NAT Type(NAT的类型和如何确定NAT类型)
我将做几篇关于NAT(网络地址转换)的文章,讨论它们的分类以及如何在Linux机器上创建一个NAT.这篇文章将介绍NAT的类型. 一般来说,NAT是用来允许私人IP与互联网对话的.它也有一定的 ...
最新文章
- 《Cucumber:行为驱动开发指南》——2.3 创建步骤定义
- mysql parametertype_MyBatis传入参数与parameterType
- 实录分享 | 计算未来轻沙龙:计算机视觉与图形学(PPT下载)
- Linux ALSA 图解
- linux vnc端口映射,linux服务器配置docker+vnc,随时访问远程桌面
- 单张滑动tab 组件
- CMM3和CMMI4的差别--过程域
- Java实现校园论坛系统
- 黑塞矩阵 Hessian Matrix
- html+css+javascript实现抖音超火罗盘时钟 (免费附源码)
- Linux下安装gitea
- Notepad++ 安装XML Tools插件格式化XML文件
- 因数据造假,奔驰、日产、保时捷被韩国环境部处以重罚
- mysql java驱动源码Connector/J编译
- linux保存压缩程序输出,Linux压缩zip文件
- SHEPWM特定消谐选择性谐波消除
- 2018年第二季度DDoS攻击报告
- usaco4.4.1 Shuttle Puzzle
- Editorial Board 、co-editor、ediitor、editor-in-chief的区别
- TCP/IP四层模型生米煮成熟饭,生态的重要性
热门文章
- 学习iphone开发
- 听说,你想让自己的Go程序运行的更快?
- 怎么将fiddler中的接口数据导入jemer直接使用
- tmpfs - 临时文件系统
- Excel中的STDEV.P和STDEV.S函数的区别 / Standardabweichung
- web基础知识(3)--HTTP协议与web框架与其他
- 宽带,梦想走向现实? (转)
- 湖北襄樊电动机保护器公司哪家好?_电动机保护器-上海硕吉电器_新浪博客
- sentences translation-2019/02/19
- python的head函数_head first python_1 递归函数来处理列表