公司动态
NAT技术如何让私有IP伪装公网身份?内网穿透怎样打通内外网通信壁垒?代理服务器(正向/反向)如何实现安全加速?交换机如何终结局域网数据冲突?一文看懂现代网络通信的底层逻辑
文章目录本篇摘要一.何为NAT技术二.NAPT技术三.正向代理服务器四.反向代理服务器五.基于正向代理服务器的广域网代理之开魔法技术正向代理六.CDN技术反向代理七.基于代理服务器内容的总结八.内网穿透九.内网打洞十.简单了解下交换机**十一.总结下浏览器发送HTTP过程**十二.本篇小结本篇摘要介绍NAT/NAPT技术解决IP不足与安全问题代理服务器正向/反向功能及应用内网穿透/打洞实现通信交换机提升局域网效率概述HTTP通信流程。一.何为NAT技术先谈一谈外网由私有ip组成的局域网就是内网由共用ip组成的广域网就是外网!当子网内主机与外网通信时路由器会替换IP首部中的IP地址。该替换过程是逐级的最终数据包中的IP地址会变为公网IP。这种技术被称为NATNetwork Address Translation网络地址转换。一般部署在某个局域网也可以是广域网的的出口路由器上当数据帧出去这个路由器的时候源ip会被替换成它的WAN口ip它可以是私有也可以是公有可以理解为出了这个域就要使用这个域对外的ip后面不断出域后都是按照这个替换方案来的这里为什么要进行NAT技术来替换因为这种技术存在就允许不同局域网存在相同的私有ip比如两个不同局域网的主机ip相同但是它们访问同一服务器当出了自己的局域网就会被替换源ip然后依次类推知道访问到对应服务器返回信息的时候也能成功找到—也就证明了这种方案不仅某种意义提高了主机ip数量还能正常访问因为私有ip不能出现在广域网中因此这种技术层层替换到了广域网一定就把源私有ip替换成了公网ip了并且私有ip如果在不同局域网重复这种替换技术还可以把重复的替换成公网ip而且返回信息的时候还能无误的返回给这两个不同局域网的相同ip主机。通过NAT技术实现了局域内用路由器的LAN口标识出了这个域就用对应的WAN口ip的技术不仅增加了主机ip数量通过私有可重复技术而且保证了私有ip不会出现在广域网中如下图一般情况下私有IP在无外在技术时只能直接访问公网。若想自己实现的服务器程序能在公网被访问需将其部署在有外网IP的服务器上这类服务器可在阿里云、腾讯云购买。之前实现的http服务器需公网IP才能访问因部署在有公网及对应端口的服务器上按规则访问可连通若为仅在本机的私有IP则无法访问。放大下路由器过程NAT路由器将源地址从10.0.0.10替换成全局IP 202.244.174.37。NAT路由器收到外部数据时把目标IP从202.244.174.37替换回10.0.0.10。NAT路由器内部有一张自动生成的用于地址转换的表。当10.0.0.10第一次向163.221.120.9发送数据时生成表中的映射关系。二.NAPT技术NAPT也属于NAT技术是它的优化这就是每个路由器里面缓存的那张表网络地址端口转换Network Address Port Translation上面我们已经知道怎么发出去了那怎么回来呢它是上面我们说的NAT技术的升级版因为它为了满足这种映射关系保证不同局域网的相同ip访问资源的时候不出错等情况采取了一种ip port的双向映射关系那么路由器如何保证这个双向的唯一映射关系呢?(假设它的局域内不同主机访问同一资源)此时它的内部就是主机ipport (ip不同保证了左边映射的唯一性);而右边的话都要被替换成WAN口ip,我们需要保证回来的时候能正确找到主机因此这里路由器的端口号每次都要换一下!这种关联关系也是由NAT路由器自动维护的.例如在TCP的情况下,建立连接时就会生成这个表项;在断开连接后,就会删除这个表项。NAT技术缺陷无法从NAT外部向内部服务器建立连接转换表的生成和销毁需要额外开销通信过程中NAT设备异常时即便有热备所有TCP连接也会断开。最后回答两个问题1为什么需要NAT技术进行转换解决ip不足私有ip不能入广域网问题!2为什么外网不能进入内网因为路途中的路由器没有建立映射关系!三.正向代理服务器正向代理定义正向代理是一种常见网络代理方式位于客户端和目标服务器之间代表客户端向目标服务器发送请求接收客户端请求后转发给目标服务器再将目标服务器响应返回给客户端可实现提高访问速度、隐藏客户端身份、实施访问控制等功能。正向代理工作原理客户端将请求发送给正向代理服务器。正向代理服务器接收请求根据配置如缓存查找、内容过滤等进行处理。正向代理服务器把处理后的请求转发给目标服务器。目标服务器处理请求将响应返回给正向代理服务器。正向代理服务器将响应返回给客户端过程中也可对响应做调整。正向代理功能特点缓存功能缓存经常访问的资源客户端再次请求时可从缓存获取提高访问速度。内容过滤依据预设规则对请求或响应过滤如屏蔽广告、阻止恶意网站等。访问控制实现对特定网站访问控制如限制员工工作时间访问娱乐网站。隐藏客户端身份隐藏客户端真实IP地址保护客户端隐私。负载均衡在多个目标服务器间分配客户端请求提升系统可扩展性与可靠性。正向代理应用场景企业网络管理企业借助正向代理管理控制员工网络访问确保员工工作时间专注工作避免访问不良网站或泄露公司机密。公共网络环境在图书馆、学校等公共场所网络环境中实现对网络资源的合理分配与管理保障网络使用公平性与安全性。内容过滤与保护家长通过设置正向代理过滤不良内容保护孩子免受网络不良信息影响。提高访问速度针对经常访问的网站或资源利用缓存机制提升访问速度减少网络延迟。跨境电商与海外访问帮助跨境电商或需访问海外资源的企业和个人突破网络限制顺畅访问海外网站和资源。四.反向代理服务器基本原理位于客户端和Web服务器之间客户端请求先到达反向代理服务器它依据配置规则转发请求给后端Web服务器并将响应返回给客户端客户端仅知晓与反向代理服务器通信。应用场景负载均衡按配置的负载均衡策略把客户端请求分发到多个后端服务器提升网站整体性能与响应速度尤其在高并发场景下作用显著。安全保护隐藏后端Web服务器真实IP地址降低被直接攻击风险还可配置防火墙、访问控制列表等安全策略过滤和限制客户端请求保护后端服务器安全。缓存加速缓存后端Web服务器响应内容对重复请求可直接从缓存返回响应无需再次向后端服务器请求减少后端服务器负载提升网站响应速度。内容过滤和重写依据配置规则对客户端请求进行过滤和重写如添加或删除请求头、修改请求路径等助力实现特定业务需求如URL重写、用户认证等。动静分离大型网站中将静态资源和动态资源分开处理静态资源部署在反向代理服务器上可直接返回其响应无需再次向后端服务器请求提升静态资源访问速度。与CDN关系CDN内容分发网络采用了反向代理的原理。五.基于正向代理服务器的广域网代理之开魔法技术正向代理下面简单说下首先我们客户端装一款特定软件的客户端然后请求比如某个外国公网然后被这款客户端进行包装比如ip被包装到香港地区骗过运营商之后被香港指定的服务器(安装了这款软件的服务端)然后进行解祈得到最后要去访问外国公网直接就去了拿到的信息后再进行包装返回给客户主机再被这款软件进行解包此时客户就以为自己访问的是外国网站其实是被香港服务器访问了然后进行的转发—根本目的就是骗过运行商! ! !六.CDN技术反向代理其实这里就可以理解成一种大的云服务器放了一些经常被访问的资源从自己的服务器里拷贝过去用户如果访问某个服务器就先去这个CDN对应的云服务器去拿如果没有再去对应服务器请求然后缓存起来一些CDN一些公司为了缓解服务器压力就会把对应的一些资源放在云服务里这个ip打开一般都是一些代码一般只需要把对应的业务代码路径贴进去代码部署在云服务器里面即可大致过程七.基于代理服务器内容的总结代理服务器应用广泛是应用比较广的一种技术。代理服务器类型及应用场景开魔法属于广域网中的代理。负载均衡属于局域网中的代理。正向代理特点与作用用于请求的转发例如借助代理绕过反爬虫。会隐藏用户信息通过转发请求与应答机制达成目的。反向代理特点与作用往往作为一个缓存。隐藏对应的远端服务器信息主要用于服务器的负载均衡提高效率等。八.内网穿透借助具有公网IP的服务器作为中间桥梁。内网设备先向穿透服务器发起请求建立通信通道然后外网设备通过这个通道与内网设备进行数据交换。如下配置客户端的时候就会相对应的服务端即服务器发送对于的请求然后服务器就会记录对应的NAT映射后的公网ipport与对应自己端口绑定然后当另一方访问这个对应的端口就被服务器识别到去访问对应的主机了一般局域网的主机都是允许访问对应的公网的但是如果两个局域网的主机需要通信就可以这样对应主机与这个服务器绑定后借助一个中间服务器接收请求进行对于的目标主机执行转发服务进而实现双方通信例如在家办公时通过公网服务器中转使家里的设备能访问公司内网的电脑。九.内网打洞主要是诱骗服务器创建-个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 映射就能拿着对应的公网 ipport 访问局域网内的主机了基于内网穿透与内网打洞的对比连接方向内网穿透中内网设备被动接受外网设备经中间服务器的连接请求内网打洞是内网设备主动向对方公网IP和端口发数据包尝试建立直接连接。效率和延迟内网穿透数据经中间服务器转发延迟高、效率低内网打洞成功后设备直接建立P2P连接延迟低、效率高。技术难度与应用场景内网穿透技术简单应用广泛可用于远程办公等内网打洞技术复杂受NAT设备类型限制多用于特定P2P应用以提高传输效率。通俗理解:内网穿透:服务器替你去访问!内网打洞:打通从外到内的通道(NAT映射)自己访问!十.简单了解下交换机这里假设这八个主机都位于一个局域网内,我们要知道局域网就是个碰撞域每次只能允许存在一条信息!如果此时 A 在局域网内发信息发给 B此时 E 如果也在发发给 H此时如果没有交换机它们就要错开进行发送但是如果有了交换机此时交换机看到 A 是发给 B 的在自己的左边因此就不进行数据帧扩散到 EFGH 这里同理 B 也是这样把这个大的局域网分成两个部分此时就可以同时发送互不干扰了这样就不会冲突大大提高了效率当然了只是针对上面这样的情况如果同侧就不行了此时如果我们大大增加交换机数量就可以尽最大提高效率十一.总结下浏览器发送HTTP过程通过域名解释DNS得到对应的ipport进行tcp包装三次握手分步发底层被ip包装然后就是上面讲的数据链路层先ARP层mac帧层发送数据帧通过路由器进行路由通过NAT技术等得到对应主机mac地址之后直接发送三次握手的请求握手成功后把http报文打包成tcp再次类似上面操作进行类似上面打包发送原理进行通信浏览器拿到信息后进行按照http反序列化进行解析呈现出来不需要了就四次挥手同上面步骤之后确定tcp断开后对应路由器清除NAT缓存表到了一定时间就自动删除对应ARP表此时下次连接就重新需要建立tcp连接了十二.本篇小结本篇涵盖NAT技术原理与缺陷、代理服务器类型及作用、内网穿透/打洞通信方式、交换机局域网优化总结浏览器HTTP通信全流程解析网络关键技术要点。