🔥个人主页🔥:孤寂大仙V
🌈收录专栏🌈:计算机网络
🌹往期回顾🌹:【计算机网络】数据链路层------ARP协议
🔖流水不争,争的是滔滔不息
- 一、网络地址转换NAT技术
-
- [NAT IP转换](#NAT IP转换)
- NAPT
- [NAT 技术的缺陷](#NAT 技术的缺陷)
- 二、代理服务器
- 三、内网穿透
- 四、交换机
一、网络地址转换NAT技术
NAT(Network Address Translation)是一种网络技术,用于将私有IP地址转换为公有IP地址,以实现多台设备共享单一公网IP访问互联网。它在家庭网络、企业网络和云计算环境中广泛应用。
前面,聊报文信息ip地址通过路由器WAN口转化为新的ip地址到公网,公网的服务器或其他主机的应答发回来就用到了NAT技术。
NAT 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
NAT的过程,不仅是内网ip能替换,端口号也能替换。
局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的ip都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网主机呢?
NAPT就是通过ip+prot来建立关联的。
通过NAT路由器连接外网的WAN口ip,公网ip具有唯一性。LAN口ip,内网ip加上端口号在这个局域网内部也具有唯一性。如上图转化表,左面是局域网内ip+端口号是唯一的,右面转化的外面ip也是唯一的。
私有ip+自己的端口号是一种唯一的健值。
NAT 技术的缺陷
由于 NAT 依赖这个转换表, 所以有诸多限制:
- 无法从 NAT 外部向内部服务器建立连接;(外网无法范围内网)
- 装换表的生成和销毁都需要额外开销;
- 通信过程中一旦 NAT 设备异常, 即使存在热备, 所有的 TCP 连接也都会断开;
二、代理服务器
正向代理
正向代理(Forward Proxy) 是一种常见的网络代理方式, 它位于客户端和目标服务器之间, 代表客户端向目标服务器发送请求。 正向代理服务器接收客户端的请求, 然后将请求转发给目标服务器, 最后将目标服务器的响应返回给客户端。 通过这种方式, 正向代理可以实现多种功能, 如提高访问速度、 隐藏客户端身份、 实施访问控制等。
工作原理
- 客户端将请求发送给正向代理服务器。
- 正向代理服务器接收请求, 并根据配置进行处理, 如缓存查找、 内容过滤等。
- 正向代理服务器将处理后的请求转发给目标服务器。
- 目标服务器处理请求, 并将响应返回给正向代理服务器。
- 正向代理服务器将响应返回给客户端。
功能特点 - 缓存功能: 正向代理服务器可以缓存经常访问的资源, 当客户端再次请求这些资源时, 可以直接从缓存中获取, 提高访问速度。
- 内容过滤: 正向代理可以根据预设的规则对请求或响应进行过滤, 如屏蔽广告、阻止恶意网站等。
- 访问控制: 通过正向代理, 可以实现对特定网站的访问控制, 如限制员工在工作时间访问娱乐网站。
- 隐藏客户端身份: 正向代理可以隐藏客户端的真实 IP 地址, 保护客户端的隐私。
- 负载均衡: 在多个目标服务器之间分配客户端请求, 提高系统的可扩展性和可靠性。
应用场景 - 企业网络管理: 企业可以通过正向代理实现对员工网络访问的管理和控制, 确保员工在工作时间内专注于工作, 避免访问不良网站或泄露公司机密。
- 公共网络环境: 在公共场所如图书馆、 学校等提供的网络环境中, 通过正向代理可以实现对网络资源的合理分配和管理, 确保网络使用的公平性和安全性。
- 内容过滤与保护: 家长可以通过设置正向代理来过滤不良内容, 保护孩子免受网络上的不良信息影响。
- 提高访问速度: 对于经常访问的网站或资源, 正向代理可以通过缓存机制提高访问速度, 减少网络延迟。
- 跨境电商与海外访问: 对于跨境电商或需要访问海外资源的企业和个人, 正向代理可以帮助他们突破网络限制, 顺畅地访问海外网站和资源。
反向代理
反向代理服务器是一种网络架构模式, 其作为 Web 服务器的前置服务器, 接收来自客户端的请求, 并将这些请求转发给后端服务器, 然后将后端服务器的响应返回给客户端。 这种架构模式可以提升网站性能、 安全性和可维护性等
基本原理
反向代理服务器位于客户端和 Web 服务器之间, 当客户端发起请求时, 它首先会到达反向代理服务器。 反向代理服务器会根据配置的规则将请求转发给后端的 Web服务器, 并将 Web 服务器的响应返回给客户端。 在这个过程中, 客户端并不知道实际与哪个 Web 服务器进行了交互, 它只知道与反向代理服务器进行了通信。
应用场景
- 负载均衡: 反向代理服务器可以根据配置的负载均衡策略, 将客户端的请求分发到多个后端服务器上, 以实现负载均衡。 这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。
- 安全保护: 反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址, 降低其被直接攻击的风险。 同时, 它还可以配置防火墙、 访问控制列表(ACL) 等安全策略,对客户端的请求进行过滤和限制, 以保护后端服务器的安全。
- 缓存加速: 反向代理服务器可以缓存后端 Web 服务器的响应内容, 对于重复的请求, 它可以直接从缓存中返回响应, 而无需再次向后端服务器发起请求。 这可以大大减少后端服务器的负载, 提升网站的响应速度。
- 内容过滤和重写: 反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写, 例如添加或删除请求头、 修改请求路径等。 这有助于实现一些特定的业务需求, 如 URL 重写、 用户认证等。
- 动静分离: 在大型网站中, 通常需要将静态资源和动态资源分开处理。 通过将静态资源部署在反向代理服务器上, 可以直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求。 这可以大大提升静态资源的访问速度。
- CDN(Content Delivery Network, 内容分发网络) 就是采用了反向代理的原理
NAT和代理服务器
路由器往往都具备 NAT 设备的功能, 通过 NAT 设备进行中转, 完成子网设备和其他子网设备的通信过程.
代理服务器看起来和 NAT 设备有一点像. 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务器; 服务器返回结果后, 代理服务器又把结果回传给客户端。
那么 NAT 和代理服务器的区别有哪些呢?
- 从应用上讲, NAT 设备是网络基础设备之一, 解决的是 IP 不足的问题. 代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙, 另外像迅游这样的加速器,也是使用代理服务器。
- 从底层实现上讲, NAT 是工作在网络层, 直接对 IP 地址进行替换. 代理服务器往往工作在应用层。
- 从使用范围上讲, NAT 一般在局域网的出口部署, 代理服务器可以在局域网做,也可以在广域网做, 也可以跨网.
- 从部署位置上看, NAT 一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上.代理服务器是一种应用比较广的技术.
- 翻墙: 广域网中的代理.
- 负载均衡: 局域网中的代理.
代理服务器又分为正向代理和反向代理.
你要访问的网址,通过一些app把你设备的请求报文加密,然后这个加密的报文通过国内运营商然后出国(这是时候运营商不能识别你的报文是什么),然后报文到了代理服务器上对加密的报文进行解析去请求网页,对网页内容的报文进行加密,通过运营商网络返回到你的主机,然后主机上的Clash这样的app对报文进行解密。
三、内网穿透

一个场景,现在你在家需要访问公司的主机,公司都是内网(NAT路由无法从外网到内网),现在你没有在公司,现在你在家需要访问公司的主机。**内网穿透的目的就是,让外网能访问内网的主机,就像它有外网一样。**你在公网有一台服务器(中继服务器),内网机器(公司主机)主动连接这台中继服务器,建立一条长连接。(家里主机)外网访问中继服务器,中继服务器把数据通过这条长连接转发给内网机器。
内网打洞(P2P)

主机A和主机B,主机A所处的局域网路由器的WAN口IP和主机B所处局域网路由器的WAN口IP通过云服务器交换WAN口ip+prot。然后通过NAT映射,主机A以后就直接向主机B的公网ip+port发数据包了,主机B以后就直接像主机A的公网IP+port发数据包了。
主机 A 和 B 通过云服务器交换彼此的公网 IP 和端口,然后各自通过 NAT 映射,尝试直连打洞。一旦打洞成功,数据包就不再经过服务器,直接通过两边路由器转发给各自的主机。
现实中直播有的就是用内网打洞的方式进行路由,不走服务器直接到你的主机。
四、交换机

交换机工作中在数据链路层,数据链路层局域网通信,MAC地址转发数据帧在整个局域网内。MAC地址的转发会广播泛洪。如上图主机A主机D处于交换机的左面,主机B、主机C、主机E处于交换机的右面。当mac地址数据帧转发的时候,交换机就会区分区域,但是数据帧没有经过交换机的时候不会主动学习的(存储哪个是哪个区域的),比如一开始主机A数据帧经交换机到主机B这时候才存储区分。等数据帧都交换几次,交换机就知道哪个主机是那边的了。这时候再广播,如图比如主机A的数据帧想到主机D,广播的信息到了交换机就知道,主机D在这个区域,不在另一个区域。
交换机是被动学习的,只有数据帧经过交换机,它才能学习和建立 MAC 表;起初不知道目标地址就广播,随着通信增多,它会精确转发,减少广播。