美文网首页
NAT穿透的理解

NAT穿透的理解

作者: 富多多 | 来源:发表于2020-03-06 23:13 被阅读0次
3e6d745f3c5048015306582bc90d7f93.jpg

P2P通信

首先我们需要理解P2P的概念,P2P(peer to peer)通信即点对点通信,简单点讲就是两个端之间不需要借助一个中转服务,实现点对点的直接连接进行通信,打个比方:你有两部手机,你需要将一部手机里拍摄的照片传递给另一台手机,你有两种方式

  • a) 借助云盘,你在两部手机上各安装一个百度云客户端,使用同一个账号登录,A手机上传图片到云端,B手机通过百度远客户端下载到本地;
  • b) 打开两台手机的蓝牙,通过蓝牙将图片传输

其中b方式就是P2P传输,P2P的好处就是不需要一个服务端中继,在很多情况下,这样的中继服务器的开销比较大,耗费很多的资源,比如视频、音频通话;这时候如果使用P2P技术,就会节省很多的服务器开支。以视频通话为例,两个用户的手机想建立起P2P链接,会遇到很多的问题要解决,因为我们的手机绝大部分情况下是位于NAT后端,接下来讲下NAT

为什么要有NAT

因为公网IP是稀缺资源,不可能给每台手机都分配一个公网的IP地址,手机常常是分配了一个局域网的地址,NAPT通过端口多路复用技术,路由器通过端口映射实现局域网内的设备进行了访问外网资源的访问,这里不详细展开讲。

为什么会有NAT穿透技术

因为了有NAT,在P2P建立的路上就出现了几个障碍:

  • 一台设备(包括手机/PC等)上有两套IP地址,一个局域网IP地址用于NAT内侧的设备间进行通信,一个映射的外网端口与外网主机进行通信,是路由器动态分配的设备自身并不知道这个映射的端口是多少
  • 在两个NAT背后的设备即使知道对方的IP也无法进行点对点通信

这种情况下,就需要穿透技术了(俗称UDP打洞),通过一个中间服务辅助建立起两端的P2P通路,可以简单的理解为让NAT背后的通信两端知道对方的外网访问IP和动态分配的端口。

补充一点知识:大部分情况下,局域网使用锥形NAT(coneNAT),这个种结构的特点就是一个应用访问外网而分配的动态端口由路由器保持着,该应用的所有的对外网的访问都是用该动态分配的端口,但是还有一种对称NAT(symmetric NAT)结构,该架构下路由器为每次外网访问生成一个动态端口,这种情况是无法实现真正的P2P通信的,必须有一个中继服务器。


NAT网络结构

如何实现NAT穿透

首先RFC3489协议定义如何实现不同NAT后的client实现P2P,这是一个实现全功能的协议,后来新的RFC5389协议协议废除了RFC3489,在RFC3489 STUN协议的基础上,新增了对称网络架构下的P2P支持(使用一个中继服务),并定义该协议为一个工具协议,不提供完整的实现,具体的数据传输可以是UDP也可以是TCP(当然实际落地的还是UDP),ICE协议是使用RFC5389协议实现NAT穿透实现方案,比如github开源项目[coturn]全面支持这些RFC,后边将单独使用一篇文章将,基于coturn的使用,来实现NAT穿透。

相关文章

  • 内网穿透原理总结与工具推荐

    本文主要总结个人进行内网穿透的知识,主要包括以下内容: NAT原理解析 NAT穿透工具推荐 内网穿透,即NAT(N...

  • NAT穿透的理解

    P2P通信 首先我们需要理解P2P的概念,P2P(peer to peer)通信即点对点通信,简单点讲就是两个端之...

  • NAT穿透概念的简单介绍

    前言 公司做nat穿透功能时,学习了一下nat穿透的概念,在此做一个总结.只是一些概念性的理解和介绍. NAT N...

  • 内网穿透是什么?为什么要内网穿透?

    内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT...

  • frp配置实践教程

    什么是内网穿透内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据...

  • 让你的工作更高效!快来看看如何使用内网穿透

    什么是内网穿透 内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数...

  • 内网穿透frp

    内网穿透,不是很好理解。先来看看外网的情况:内网,局域网,通过NAT,能够访问到互联网上的服务。内网穿透,和其相反...

  • NAT(网络地址转换技术)详解,NAT和NAPT的区别是什么?

    内网穿透,也就是 NAT 穿透,是一种网络地址的转换技术;进行 NAT 穿透,是为了使具有某一个特定源 IP 地址...

  • NAT 穿透原理

    一、背景知识介绍 1.什么是NAT NAT 是 Network Address Translation 的缩写,即...

  • NAT与内网穿透

    NAT是什么 网络地址转换,就是替换IP报文头部的地址信息.由于IPv4地址有限,不可能为每一个上网设备分配一个i...

网友评论

      本文标题:NAT穿透的理解

      本文链接:https://www.haomeiwen.com/subject/vupwrhtx.html