文章目录
- 本篇摘要
- 一.何为NAT技术
- 二.NAPT技术
- 三.正向代理服务器
- 四.反向代理服务器
- 五.基于正向代理服务器的广域网代理之开魔法技术(正向代理)
- 六.CDN技术(反向代理)
- 七.基于代理服务器内容的总结
- 八.内网穿透
- 九.内网打洞
- 十.简单了解下交换机
- **十一.总结下浏览器发送HTTP过程:**
- 十二.本篇小结

本篇摘要
- 介绍NAT/NAPT技术解决IP不足与安全问题,代理服务器(正向/反向)功能及应用,内网穿透/打洞实现通信,交换机提升局域网效率,概述HTTP通信流程。
一.何为NAT技术
先谈一谈外网:
由私有ip组成的局域网就是内网,由共用ip组成的广域网就是外网!
一般部署在某个局域网(也可以是广域网的)的出口路由器上,当数据帧出去这个路由器的时候,源ip会被替换成它的WAN口ip(它可以是私有也可以是公有,可以理解为出了这个域就要使用这个域对外的ip!),后面不断出域后都是按照这个替换方案来的!
这里为什么要进行NAT技术来替换???
-
因为这种技术存在就允许不同局域网存在相同的私有ip,比如两个不同局域网的主机ip相同,但是它们访问同一服务器,当出了自己的局域网就会被替换源ip,然后依次类推知道访问到对应服务器,返回信息的时候也能成功找到—>也就证明了这种方案不仅某种意义提高了主机ip数量还能正常访问!
-
因为私有ip不能出现在广域网中,因此这种技术层层替换,到了广域网一定就把源私有ip替换成了公网ip了(并且私有ip如果在不同局域网重复,这种替换技术还可以把重复的替换成公网ip,而且返回信息的时候还能无误的返回给这两个不同局域网的相同ip主机)。
通过NAT技术实现了局域内用路由器的LAN口标识,出了这个域就用对应的WAN口ip的技术,不仅增加了主机ip数量(通过私有可重复技术),而且保证了私有ip不会出现在广域网中!
如下图:

放大下路由器过程:

二.NAPT技术
NAPT:也属于NAT技术,是它的优化!
这就是每个路由器里面缓存的那张表!(网络地址端口转换,Network Address Port Translation)
上面我们已经知道怎么发出去了,那怎么回来呢?
它是上面我们说的NAT技术的升级版,因为它为了满足这种映射关系,保证不同局域网的相同ip访问资源的时候不出错等情况,采取了一种ip + port的双向映射关系!

- 那么路由器如何保证这个双向的唯一映射关系呢?(假设它的局域内不同主机访问同一资源),此时它的内部就是主机ip+port (ip不同保证了左边映射的唯一性);而右边的话都要被替换成WAN口ip,我们需要保证回来的时候能正确找到主机,因此这里路由器的端口号每次都要换一下!
- 这种关联关系也是由NAT路由器自动维护的.例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项。
NAT技术缺陷:
最后回答两个问题:
1为什么需要NAT技术进行转换?
- 解决ip不足+私有ip不能入广域网问题!
2为什么外网不能进入内网?
- 因为路途中的路由器没有建立映射关系!
三.正向代理服务器

正向代理定义
正向代理是一种常见网络代理方式,位于客户端和目标服务器之间,代表客户端向目标服务器发送请求,接收客户端请求后转发给目标服务器,再将目标服务器响应返回给客户端,可实现提高访问速度、隐藏客户端身份、实施访问控制等功能。
正向代理工作原理
正向代理功能特点
正向代理应用场景
四.反向代理服务器

基本原理:位于客户端和Web服务器之间,客户端请求先到达反向代理服务器,它依据配置规则转发请求给后端Web服务器,并将响应返回给客户端,客户端仅知晓与反向代理服务器通信。
应用场景:
- 负载均衡:按配置的负载均衡策略,把客户端请求分发到多个后端服务器,提升网站整体性能与响应速度,尤其在高并发场景下作用显著。
- 安全保护:隐藏后端Web服务器真实IP地址,降低被直接攻击风险,还可配置防火墙、访问控制列表等安全策略,过滤和限制客户端请求,保护后端服务器安全。
- 缓存加速:缓存后端Web服务器响应内容,对重复请求可直接从缓存返回响应,无需再次向后端服务器请求,减少后端服务器负载,提升网站响应速度。
- 内容过滤和重写:依据配置规则对客户端请求进行过滤和重写,如添加或删除请求头、修改请求路径等,助力实现特定业务需求,如URL重写、用户认证等。
- 动静分离:大型网站中将静态资源和动态资源分开处理,静态资源部署在反向代理服务器上,可直接返回其响应,无需再次向后端服务器请求,提升静态资源访问速度。
- 与CDN关系:CDN(内容分发网络)采用了反向代理的原理。
五.基于正向代理服务器的广域网代理之开魔法技术(正向代理)
下面简单说下:
- 首先我们客户端装一款特定软件的客户端,然后请求比如某个外国公网,然后被这款客户端进行包装,比如ip被包装到香港地区,骗过运营商,之后被香港指定的服务器(安装了这款软件的服务端)),然后进行解祈得到最后要去访问外国公网,直接就去了,拿到的信息后再进行包装返回给客户主机,再被这款软件进行解包,此时客户就以为自己访问的是外国网站,其实是被香港服务器访问了,然后进行的转发—>根本目的就是骗过运行商! ! !
六.CDN技术(反向代理)
其实这里就可以理解成一种大的云服务器放了一些经常被访问的资源(从自己的服务器里拷贝过去),用户如果访问某个服务器就先去这个CDN对应的云服务器去拿如果没有再去对应服务器请求然后缓存起来!
一些CDN: 
一些公司为了缓解服务器压力就会把对应的一些资源放在云服务里,这个ip打开一般都是一些代码,一般只需要把对应的业务代码路径贴进去,代码部署在云服务器里面即可!

大致过程:

七.基于代理服务器内容的总结
- 开魔法:属于广域网中的代理。
- 负载均衡:属于局域网中的代理。
- 用于请求的转发,例如借助代理绕过反爬虫。
- 会隐藏用户信息,通过转发请求与应答机制达成目的。
- 往往作为一个缓存。
- 隐藏对应的远端服务器信息,主要用于服务器的负载均衡,提高效率等。
八.内网穿透
借助具有公网IP的服务器作为中间桥梁。内网设备先向穿透服务器发起请求,建立通信通道,然后外网设备通过这个通道与内网设备进行数据交换。
如下: 
- 配置客户端的时候,就会相对应的服务端即服务器发送对于的请求,然后服务器就会记录对应的NAT映射后的公网ip+port(与对应自己端口绑定);然后当另一方访问这个对应的端口就被服务器识别到去访问对应的主机了!
一般局域网的主机都是允许访问对应的公网的;但是如果两个局域网的主机需要通信,就可以这样:对应主机与这个服务器绑定后,借助一个中间服务器接收请求,进行对于的目标主机执行转发服务,进而实现双方通信!
例如,在家办公时,通过公网服务器中转,使家里的设备能访问公司内网的电脑。
九.内网打洞
主要是诱骗服务器创建-个P2P信道。让两台内网设备同时向对方的公网IP和端口发送报文,使服务器误以为双方在直接通信,NAT设备也会将其误认为是对话回应从而转发数据,实现内网设备之间的直接通信。
大白话形象理解下:
也就是:内网打洞的过程中,服务器起到的是协助作用。以内网设备 A 和 B 为例,它们要进行通信,首先 A 向服务器发起与 B 的打洞请求,服务器向 B 转发打洞请求,同时 A 向 B 的公网 IP 和端口直接发送探测包,B 收到从服务器转发过来的打洞请求后,也向 A 的公网 IP 和端口发送探测包。这样,A 和 B 就分别为对方在自己的 NAT 网关上建立了相关的映射表项,使得双方后续发送的报文能直接穿透对方的 NAT 网关(防火墙),实现 P2P!
如果 A 与 B 想要通信,请求对应服务器,然后服务器拿着对应的每个主机出口的公网 ip 与 port 进行交换,这样双方就建立好 NAT 映射关系了,然后拿着对应的公网 ip 与 port 就能访问了—->只要解决了对应的外到内的 NAT 映射,就能拿着对应的公网 ip+port 访问局域网内的主机了!
基于内网穿透与内网打洞的对比:
- 连接方向:内网穿透中内网设备被动接受外网设备经中间服务器的连接请求;内网打洞是内网设备主动向对方公网IP和端口发数据包尝试建立直接连接。
- 效率和延迟:内网穿透数据经中间服务器转发,延迟高、效率低;内网打洞成功后设备直接建立P2P连接,延迟低、效率高。
- 技术难度与应用场景:内网穿透技术简单,应用广泛,可用于远程办公等;内网打洞技术复杂,受NAT设备类型限制,多用于特定P2P应用以提高传输效率。
通俗理解:
内网穿透:服务器替你去访问!
内网打洞:打通从外到内的通道(NAT映射),自己访问!
十.简单了解下交换机
这里假设这八个主机都位于一个局域网内,我们要知道,局域网就是个碰撞域,每次只能允许存在一条信息!
如果此时 A 在局域网内发信息,发给 B,此时 E 如果也在发,发给 H;此时如果没有交换机,它们就要错开进行发送,但是如果有了交换机,此时交换机看到 A 是发给 B 的在自己的左边,因此就不进行数据帧扩散到 EFGH 这里,同理 B 也是,这样把这个大的局域网分成两个部分,此时就可以同时发送,互不干扰了;这样就不会冲突,大大提高了效率!(当然了只是针对上面这样的情况,如果同侧就不行了,此时如果我们大大增加交换机数量就可以尽最大提高效率)!
十一.总结下浏览器发送HTTP过程:
- 通过域名解释DNS得到对应的ip+port
- 进行tcp包装(三次握手分步发),底层被ip包装,然后就是上面讲的数据链路层(先ARP层+mac帧层发送数据帧,通过路由器进行路 由(通过NAT技术等)得到对应主机mac地址,之后直接发送三次握手的请求)!
- 握手成功后,把http报文打包成tcp再次类似上面操作,进行类似上面打包发送原理进行通信,浏览器拿到信息后进行按照http反序列化 进行解析呈现出来
- 不需要了就四次挥手(同上面步骤),之后确定tcp断开后对应路由器清除NAT缓存表(到了一定时间就自动删除对应ARP表),此时 下次连接就重新需要建立tcp连接了!
十二.本篇小结
本篇涵盖NAT技术原理与缺陷、代理服务器类型及作用、内网穿透/打洞通信方式、交换机局域网优化,总结浏览器HTTP通信全流程,解析网络关键技术要点。


