前些天在知乎回答了一个智能家居远程控制方面的问题,感觉自己对无公网IP地址环境下的穿透问题有些了解。昨天同事拿来一个网络摄像头,安装在ADSL路由器上网的环境下,可以远程查看视频,效果还挺不错,问我厂家是不是也在网上放了一台服务器做端口转发。

咋看之下好像通过端口转发也可以做,因为通过手机查看视频流所需的码率并不高,一台2M带宽的公网服务器并行处理10条视频流没多大问题,但相比智能家居远程控制仅需不到1K/S的流量,查看视频所需流量还是挺大的,在公网放置一台服务器做端口转发似乎并不是理想方案。有没有更好的方案呢,比如NAT穿透?

先了解一下NAT的原理,目前共有四种NAT实现方式:

  1. Full cone NAT可以将内网主机的某个端口开放到外部,任何互联网上访问者都可以访问这个端口。
  2. Restricted cone NAT是对访问者的IP进行限制。
  3. Port-Restricted cone NAT是对访问者的IP和端口进行限制。
  4. Symmetric cone NAT最特殊,内网主机向外发起的每个连接,开放出去的端口都不一样。

  有的文章分析:通讯双方只要不存在Symmetric cone NAT,就能实现NAT穿透,实现通讯双方的点对点连接。但对于一个具体的设备,如何实现NAT穿透呢?需要再想想。

  另外,我混淆了路由模式和NAT模式的概念:

  1. 家用路由器(我用的TP-Link)一般工作在路由模式下,并非NAT。
  2. 家用路由器跟NAT相关的设置是在“转发规则”中,一般有下面几种:
    1. 虚拟服务器。设置一条Full cone NAT规则,任何外部主机通过任何端口都能访问内网主机的某个端口。
    2. 特殊应用程序。设置一条Restricted cone NAT规则,特定IP的主机可以访问内网主机多个端口。
    3. DMZ主机。设置多条Full cone NAT规则,将内部主机的所有服务开放到外网,但是切断该主机到内网的连接。

  这只是个人的理解,需要更多的知识佐证,可能还需要阅读一下开源路由器的代码。

关于NAT穿透的一些理解的更多相关文章

  1. NAT穿透的详解及分析

    一.什么是NAT?为什么要使用NAT?NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址.NAT的出现完美地解决了lP地 ...

  2. NAT穿透的详细讲解及分析.RP

    原创出处:https://bbs.pediy.com/thread-131961.htm 转载来源: https://blog.csdn.net/g_brightboy/article/details ...

  3. NAT穿透的详细讲解及分析

    原文地址:http://bbs.pediy.com/thread-131961.htm 一.什么是NAT?为什么要使用NAT?NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时 ...

  4. 手写内网穿透服务端客户端(NAT穿透)原理及实现

    Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...

  5. P2P技术(2)——NAT穿透

    P2P可以是一种通信模式.一种逻辑网络模型.一种技术.甚至一种理念.在P2P网络中,所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息.处理器运算能 ...

  6. NAT穿透解决方案介绍

    最近公司要实现在各种网络环境下面的多屏互动(机顶盒.android phone.iphone及PC端)的需求:由于IP地址资源有限的原因,目前我们使用的各种终端设备都位于局域网后面也就是多台设备共享同 ...

  7. 使用TCP协议的NAT穿透技术

    一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的).但是,众所周知的是,UDP是一个无连 ...

  8. udp之nat穿透的困惑

    nat穿透实现:[A]内网地址[内A]192.168.1.176:25789通过stun服务器查询映射到的外网地址为外网地址[外A]212.10.55.124:26559UDPsocketA绑定到[内 ...

  9. 解决外网与内网或内网之间的通信,NAT穿透

    在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在于NAT.首先介绍下NAT. NAT的作用NAT(Network Address Translato ...

随机推荐

  1. maven + selenium + jenkins 教程收集

    maven + selenium + jenkins 教程收集 Complete Guide for Selenium integration with jenkins Maven http://le ...

  2. Android打包常见错误之Export aborted because fatal lint errors were found

    打包时报如下错误: <ignore_js_op> Export aborted because fatal lint errors were found. These are listed ...

  3. [置顶] vb报表的设计

    敲机房收费系统,最难的部分应该就是关于报表的部分了.相对于学生信息管理系统,报表是新内容,在vb中添加报表需要添加第三方控件,首先我们要下载水晶报表,下面就向大家展示一下我设计报表的步骤(我用的新版本 ...

  4. HDU1247 Hat’s Words 【trie树】

    Hat's Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. Sorting File Contents and Output with sort

     Sorting File Contents and Output with sort   Another very useful command to use on text file is  so ...

  6. 外网访问自己的tomcat

    我们平常学习时经常会写一下javaweb程序,我们为了更能逼近现实,就想着自己的javaweb程序发布后,外网的同学能够访问我们的网站,难道我们去买空间,去买域名嘛,其实也没必要,我们只是学习,测试之 ...

  7. css3 3D变换和动画

    3D变换和动画 建立3D空间,transform-style: preserve-3d perspective: 100px; 景深 perspective-origin:center center ...

  8. MYSQL预处理传参不区分大小写解决办法

    问题:预处理语句为:SELECT * FROM WHERE name=? 如果传送的参数为“admin” “ADmin” “ADMIN” “ADimn”等,结果处理后的语句为SELECT * FROM ...

  9. 重复造轮子感悟 – XLinq性能提升心得

    曾经的两座大山 1.EF 刚接触linq那段时间,感觉这家伙好神奇,语法好优美,好厉害.后来经历了EF一些不如意的地方,就想去弥补,既然想弥补,就必须去了解原理.最开始甚至很长一段时间都搞不懂IQue ...

  10. Linux 从 sar 到 sar2html 的认识

    这些变形的工具.诸如:淘宝的Tsar.ksar.sar2html....等.都是通过抓取 sar的数据   所以在最终呈现的数据上变化不大.只是展现的手段和效果不一样而已      sar 是帮助我们 ...