nat穿越

NAT深入浅出-02-NAT的分类(经典STUN分类和RFC5389后续分类)

旧城冷巷雨未停 提交于 2020-04-06 03:51:02
ps: 如果对你有帮助,请点赞,谢谢! 引用: NAT的几种类型( https://blog.csdn.net/phoenix06/article/details/70139756 ) 对比Cone NAT 和 Symmetric NAT,说明STUN为何不适用于对称型NAT的穿透( https://blog.csdn.net/Rookie_Manito/article/details/85260943) 基于STUN协议的NAT穿越技术的研究与应用_郑浩( http://cdmd.cnki.com.cn/Article/CDMD-10497-1019832865.htm ) AR530 V200R005C60 配置指南-NAT配置( https://support.huawei.com/enterprise/zh/doc/EDOC1000061797?section=j008 ) 华为路由器是否支持STUN(RFC3489 )中定义的各种类型的NAT?( https://forum.huawei.com/enterprise/zh/thread-294915-1-1.html ) 向以上大佬致敬! 1. 经典STUN分类 RFC3261定义的分类,但是自从 RFC3489 发布后,经典 STUN 的判断 NAT 类型的分类算法被发现是不完美的,许多 NAT 不完全符合

P2P通信标准协议(二)之TURN

我怕爱的太早我们不能终老 提交于 2020-04-02 17:36:43
上一篇 P2P通信标准协议(一) 介绍了在NAT上进行端口绑定的通用规则,应用程序可以根据这个协议来设计网络以外的通信。 但是, STUN/RFC5389 协议里能处理的也只有市面上大多数的 Cone NAT (关于NAT类型可以参照 P2P通信原理与实现 ), 对于 Symmetric NAT ,传统的P2P打洞方法是不适用的。因此为了保证通信能够建立,我们可以在没办法的情况下用保证成功的中继方法(Relaying), 虽然使用中继会对服务器负担加重,而且也算不上P2P,但是至少保证了最坏情况下信道的通畅,从而不至于受NAT类型的限制。 TURN/RFC5766 就是为此目的而进行的拓展。 TURN简介 TURN的全称为Traversal Using Relays around NAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能。如果终端在NAT之后, 那么在特定的情景下,有可能使得终端无法和其对等端(peer)进行直接的通信,这时就需要公网的服务器作为一个中继, 对来往的数据进行转发。这个转发的协议就被定义为TURN。TURN和其他中继协议的不同之处在于,它允许客户端使用同一个中继地址(relay address) 与多个不同的peer进行通信。 使用TURN协议的客户端必须能够通过中继地址和对等端进行通讯,并且能够得知每个peer的的IP地址和端口

比特币源码分析--端口映射

浪尽此生 提交于 2020-01-22 16:05:58
上一篇文章分析了比特币P2P网络中,一个节点是如何发现并连接到相邻节点的。在P2P网络中,一个节点既是客户又是服务器,它还要接受其他节点的连接,为网络中其他节点提供服务。这篇文章着重分析一下比特币P2P网络中是如何通过upnp来实现端口映射的。 1 从腾讯的一道面试题说起 笔者所在团队的总监在面试的时候必然要问面试者这样一个问题: 有两台手机同时连到了一个WIFI上,然后它们都访问了外网中某个服务器,那么网络是如何做到区分出这两台设备,把服务器的应答数据分发到合适的手机上呢? 如果在毫无准备的情况下来回答这个问题,自己还真是答不出来。 再想象一个场景:假设我们自己写了个小的服务器程序,然后在家里的电脑上运行,此时你想让另一个同事连接你的服务器,来验证你的服务器程序是不是能正确运行,但是明显你的网络和同事家的网络是两个不同的局域网,所以除非你去同事家或者让同事提上电脑到你家,否则无法连通。那么有什么办法做到让同事在自己家里就能点对点连上你的服务来调试么? 2 NAT和NAT穿透 上一节提到的两个问题,实际上都和NAT有关。要弄清楚上一节的问题,需要先了解NAT,所以这里先来补点网络课,了解一下NAT以及NAT穿透。 2.1 NAT 2.1.1 NAT是什么 NAT是个什么鬼?它的全称是Network Address Translation,翻译过来就是网络地址转换

TFTP协议详解及TFTP穿越NAT

半城伤御伤魂 提交于 2020-01-22 00:47:37
摘自:https://www.cnblogs.com/APeng2019/p/10719288.html#3、TFTP穿越NAT 目录 1、环境拓扑配置 2、TFTP协议学习 2.1、协议概述 2.2、TFTP报文类型 2.3、TFTP端口号分配 2.4、TFTP报文格式 2.4.1、Read request报文格式 2.4.2、Write requst报文格式 2.4.3、Acknowledgement报文格式 2.4.4、Data 报文格式 2.4.5、Error 报文格式 2.5、TFTP工作流程 3、TFTP穿越NAT 1、环境拓扑配置 2、TFTP协议学习 2.1、协议概述 TFTP英文全称:Trivial File Transfer Protocol,中文全称:简单文件传输协议。提供不复杂、开销不大的文件传输服务。端口号为69。基于UDP协议。 2.2、TFTP报文类型 TFTP共定义了五种类型的包,类型的区分由包数据前两个字节的Opcode字段区分,分别是: 读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1 写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2 文件数据包:Data,简写为DATA,对应Opcode字段值为3 回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4

NAT路由器打洞原理

。_饼干妹妹 提交于 2019-12-23 12:47:21
什么是打洞,为什么要打洞 由于Internet的快速发展 IPV4地址不够用,不能每个主机分到一个公网IP 所以使用NAT地址转换。 下面是我在网上找到的一副图 一般来说都是由私网内主机(例如上图中“电脑A-01”)主动发起连接,数据包经过NAT地址转换后送给公网上的服务器(例如上图中的“Server”),连接建立以后可双向传送数据,NAT设备允许私网内主机主动向公网内主机发送数据,但却禁止反方向的主动传递,但在一些特殊的场合需要不同私网内的主机进行互联(例如P2P软件、网络会议、视频传输等),TCP穿越NAT的问题必须解决。 下面是NAT的几种类型 NAT设备的类型对于TCP穿越NAT,有着十分重要的影响,根据端口映射方式,NAT可分为如下4类,前3种NAT类型可统称为cone类型。 (1)全克隆( Full Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。任何一个外部主机均可通过该映射发送IP包到该内部主机。 (2)限制性克隆(Restricted Cone) : NAT把所有来自相同内部IP地址和端口的请求映射到相同的外部IP地址和端口。但是,只有当内部主机先给IP地址为X的外部主机发送IP包,该外部主机才能向该内部主机发送IP包。 (3)端口限制性克隆( Port Restricted Cone) :端口限制性克隆与限制性克隆类似

移动网络优化

感情迁移 提交于 2019-12-18 03:38:36
NAT IPv4地址只有32位,最多只能提供大致42.9亿个唯一IP地址,当设备越来越多时,IP地址变得越来越稀缺,不能为每个设备都分配一个IP地址。于是,作为NAT规范就出现了。NAT(Network Address Translation,网络地址转换)是1994年提出的,其当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。每个NAT设备负责维护一个包含本地IP、端口和外网IP、端口的映射表。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。其大致过程如下: NAT的实现方式有如下三种,即: 静态转换(Static NAT):将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址; 动态转换(Dynamic NAT):将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址,当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式; 端口多路复用(Port NAT):改变外出数据包的源端口并进行端口转换,即端口地址转换

NAT技术详解

非 Y 不嫁゛ 提交于 2019-12-12 12:46:35
一、IPv4协议和NAT的由来 1、IPv4协议介绍   2011年2月3日,IANA宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增。    IPv4 即 网际网协议第4版 (Internet Protocol Version 4)定义一个跨越异种网络互连的超级网,为每个网际网的节点分配全球唯一IP地址。IPv4使用 32bits整数 表达一个地址,地址最大范围就是232约为 43亿 。以IP创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量呈爆炸性增长。   更糟糕的是,为了路由和管理方便,43亿的地址空间按 不同前缀长度 划分为 A,B,C,D,E类 地址网络和保留地址。      地址分类如下所示(默认情况下通过 第一个8位 辨别类别):     A 0 0000000--- 0 1111111 0-127     B 10 000000--- 10 111111 128-191     C 110 00000--- 110 11111 192-223     D 1110 0000--- 1110

NAT技术原理与应用

梦想的初衷 提交于 2019-12-06 00:09:30
公有IP地址: 也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。 私有IP地址: 也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址: 10.0.0.0 ——— 10.255.255.255 172.16.0.0——— 172.16.255.255 192.168.0.0———192.168.255.255 地址池: 地址池是有一些外部地址(全球唯一的IP地址)组合而成,我们称这样的一个地址集合为地址池。在内部网络的数据包通过地址转换到达外部网络时,将会在地址池中选择某个IP地址作为数据包的源IP地址,这样可以有效的利用用户的外部地址,提高访问外部网络的能力。 1.1.2关于NAT NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术,如下图所示。因此我们可以认为

华为防火墙的NAT介绍及配置详解

匿名 (未验证) 提交于 2019-12-03 00:15:02
一、华为防火墙NAT的六个分类 华为防火墙的NAT分类: NAT No-PAT:类似于Cisco的动态转换,只转换源IP地址,不转换端口,属于多对多转换,不能节约公网IP地址,使用情况较少。 NAPT(Network Address and Port Translation,网络地址和端口转换):类似于Cisco的PAT转换,NAPT即转换报文的源地址,又转换源端口。转换后的地址不能是外网接口IP地址,属于多对多或多对一转换,可以节约公网IP地址,使用场景较多。 出接口地址(Easy-IP):因其转换方式非常简单,所以也被称为Easy-IP、和NAPT一样,即转换源IP地址,又转换源端口。区别是出接口地址方式转换后的地址只能是NAT设备外网接口所配置的IP地址,属于多对一转换,可以节约IP地址。 NAT Server:静态一对一发布,主要用于内部服务器需要对Internet提供服务时使用,。 Smart NAT(智能转换):通过预留一个公网地址进行NAPT转换,而其他的公网地址用来进行NAT No-PAT转换,该方式不太常用。 三元组NAT:与源IP地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在普遍NAT中无法实现的问题。主要应用于外部用户访问局域网的一些P2P应用。 二、解决NAT转换时的环路及无效ARP

初窥IM通信协议

匿名 (未验证) 提交于 2019-12-02 22:56:40
QQ就是使用UDP协议进行发送和接收消息的。当你的机器安装了OICQ以后,实际上,你既是服务端(Server),又是客户端(Client)。当你登录OICQ时,你的OICQ作为Client连接到腾讯公司的主服务器上,当你看谁在线时,你的OICQ又一次作为Client从QQ Server上读取在线网友名单。当你和你的OICQ伙伴进行聊天时,如果你和对方的连接比较稳定,你和他的聊天内容都是以UDP的形式,在计算机之间传 送。如果你和对方的连接不是很稳定,QQ服务器将为你们的聊天内容进行中转。其他的即时通信软件原理与此大同小异。 首先,用户A输入自己的用户名和密码登录即时通讯服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号, 然后返回用户A登录成功的标志,此时用户A在 IM系统中的状态为在线(Online Presence)。 其次,根据用户A存储在IM服务器上的好友列表 (Buddy List),服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口(Port)号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。 第三步,即时通讯服务器把用户A存储在服务器上的好友列