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类型及打洞原理相关推荐

  1. NAT类型和打洞流程

    一.NAT 1. 含义 NAT技术(Network Address Translation,网络地址转换)是一种把内部网络(简称为内网)私有IP地址转换为外部网络(简称为外网)公共IP地址的技术,它使 ...

  2. P2P穿透四种NAT类型

    P2P穿透&四种NAT类型 以下对四种NAT类型分别予以说明: 1.全锥形NAT IP.端口都不受限.只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他 ...

  3. 穿透NAT类型以及STUN、TURN简单介绍

    穿透NAT类型以及STUN.TURN简单介绍 概述 NAT的副作用以及解决方案 NAT有4种不同的类型 锥形和对称形NAT的区别 STUN和TURN的简单介绍 STUN 基本思想 STUN Serve ...

  4. tutk-p2p /NAT / p2p 如何打洞

    TUTK p2p穿透的使用介绍: https://blog.csdn.net/jakejohn/article/details/87445555 打孔,nat 理论概念的解读 http://itind ...

  5. 转载一篇讲NAT类型比较好的科普文

    转载于:http://lifeofzjs.com/blog/2014/07/19/how-p2p-in-symmetric-nat/ 最近在研究NAT穿越实现p2p技术,这个技术有很多广泛的应用,比如 ...

  6. 什么是NAT?NAT类型有哪些?

    NAT(Network Address Translation,网络地址转换) 是一种地址转换技术,它可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的.NAT作 ...

  7. stun检查nat类型

    nat(Session Traversal Utilities for NAT)会话穿越应用程序,可以让位于nat后的客户端找出自己的公网地址以及对应的Internet端口,最重要的是可以判断自己处于 ...

  8. P2P内网穿透之Nat类型介绍及Nat类型检测16种NAT组合穿透操作指南整理

    目录 根据RFC 3489规定 Nat共分以下类型: 第一部分: NAT类型介绍 Full Cone NAT: Restricted Cone NAT: Port Restricted Cone NA ...

  9. Types of NAT and How to determine the NAT Type(NAT的类型和如何确定NAT类型)

      我将做几篇关于NAT(网络地址转换)的文章,讨论它们的分类以及如何在Linux机器上创建一个NAT.这篇文章将介绍NAT的类型.   一般来说,NAT是用来允许私人IP与互联网对话的.它也有一定的 ...

最新文章

  1. 《Cucumber:行为驱动开发指南》——2.3 创建步骤定义
  2. mysql parametertype_MyBatis传入参数与parameterType
  3. 实录分享 | 计算未来轻沙龙:计算机视觉与图形学(PPT下载)
  4. Linux ALSA 图解
  5. linux vnc端口映射,linux服务器配置docker+vnc,随时访问远程桌面
  6. 单张滑动tab 组件
  7. CMM3和CMMI4的差别--过程域
  8. Java实现校园论坛系统
  9. 黑塞矩阵 Hessian Matrix
  10. html+css+javascript实现抖音超火罗盘时钟 (免费附源码)
  11. Linux下安装gitea
  12. Notepad++ 安装XML Tools插件格式化XML文件
  13. 因数据造假,奔驰、日产、保时捷被韩国环境部处以重罚
  14. mysql java驱动源码Connector/J编译
  15. linux保存压缩程序输出,Linux压缩zip文件
  16. SHEPWM特定消谐选择性谐波消除
  17. 2018年第二季度DDoS攻击报告
  18. usaco4.4.1 Shuttle Puzzle
  19. Editorial Board 、co-editor、ediitor、editor-in-chief的区别
  20. TCP/IP四层模型生米煮成熟饭,生态的重要性

热门文章

  1. 学习iphone开发
  2. 听说,你想让自己的Go程序运行的更快?
  3. 怎么将fiddler中的接口数据导入jemer直接使用
  4. tmpfs - 临时文件系统
  5. Excel中的STDEV.P和STDEV.S函数的区别 / Standardabweichung
  6. web基础知识(3)--HTTP协议与web框架与其他
  7. 宽带,梦想走向现实? (转)
  8. 湖北襄樊电动机保护器公司哪家好?_电动机保护器-上海硕吉电器_新浪博客
  9. sentences translation-2019/02/19
  10. python的head函数_head first python_1 递归函数来处理列表