当前位置: 首页 > article >正文

代理和NAT多路转接

1.NAT技术背景

在IPv4协议中存在IP地址数量不充足的问题, NAT技术当前解决IP地址不够用的主要手段, 是路由器的一个重要功能。

NAT能够将私有IP对外通信时转为全局IP. 也就是就是一种将私有IP和全局IP相互转化的技术方法: 很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP; 全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的

2.NAT的三种类型

a.静态地址NAT:静态NAT是一种一对一的地址映射方式,将内部网络中的私有IP地址直接映射到一个固定的公网IP地址,具有每个内部地址都固定映射到一个外部地址且适用于需要从外部网络访问的内部服务器的特点。

b.动态地址NAT:动态NAT通过一个公网IP地址池来动态分配地址,是一种一对多的映射方式,将内部私有IP地址映射到可用的公网IP地址,具有内部地址与外部地址的映射关系是动态分配的的特点。

c.网络地址端口转换NAPT:NAPT(Network Address Port Translation)是一种多对一的地址转换方式,通过转换IP地址和端口号,允许多个内部私有IP地址共享一个公网IP地址,在公网IP地址有限的情况下,NAPT通过端口多路复用技术,为每个内部连接分配一个唯一的端口号。

3.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 发送数据时就会生成表中的映射关系;

4.NAPT

如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机? 这时候NAPT来解决这个问题了,使用IP+port来建立这个关联关系。这种关联关系也是由NAT路由器自动维护的。

5.NAT和代理服务器

路由器往往都具备NAT设备的功能, 通过NAT设备进行中转, 完成子网设备和其他子网设备的通信过程。

代理服务器看起来和NAT设备有一点像. 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务 器; 服务器返回结果后, 代理服务器又把结果回传给客户端。

代理服务器分为正向代理和反向代理:正向代理用于请求的转发(例如借助代理绕过反爬虫)常位于客户端和目标服务器之间,客户端通过正向代理服务器向目标服务器发送,此时目标服务器不可见;反向代理往往作为一个缓存,常位于服务器端,客户端发送请求先到反向代理服务器,反向代理服务器转发给服务器,此时反向代理服务器不可见。

NAT和代理服务器的区别:

a.从应用上讲, NAT设备是网络基础设备之一, 解决的是IP不足的问题. 代理服务器则是更贴近具体应用, 比 如通过代理服务器进行翻墙, 另外像UU这样的加速器, 也是使用代理服务器;

b.从底层实现上讲, NAT是工作在网络层, 直接对IP地址进行替换. 代理服务器往往工作在应用层;

c.从使用范围上讲, NAT一般在局域网的出口部署, 代理服务器可以在局域网做, 也可以在广域网做, 也可以跨网;

d.从部署位置上看, NAT一般集成在防火墙, 路由器等硬件设备上, 代理服务器则是一个软件程序, 需要部署在服务器上;


http://www.kler.cn/a/551616.html

相关文章:

  • 3.7大模型开发环境搭建:从单卡到分布式集群的全栈指南
  • Maven Repository 与 Artifactory 使用
  • QT6开发高性能企业视频会议-7 Linux中文输入法的支持
  • openEuler-24.03-LTS/virtual_machine_img 版本的安装
  • STM32完全学习——RT-thread标准版移植
  • Ubuntu学习备忘
  • Mybatis高级(动态SQL)
  • Stream流简单使用
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter16-DOM2 和 DOM3
  • 人工智能(AI)在癌症休眠研究及精准肿瘤学中的应用|顶刊速递·25-02-18
  • 本地DeepSeek模型GGUF文件转换为PyTorch格式
  • 动态规划算法篇:枚举的艺术
  • 嵌入式八股文(四)计算机网络篇
  • uniapp编写微信小程序:project.config.json: libVersion 字段需为 string, string
  • java项目打包成docker镜像步骤
  • LeetCode 热题 100_分割回文串(61_131_中等_C++)(递归(回溯))(回溯问题使用类成员变量还是函数传参)
  • 人工智能基础之数学基础:01高等数学基础
  • 小米电视维修记录 2025/2/18
  • Spark ,虚拟机基本命令(1)
  • 【Modelsim】warning:(vsim-WLF-5000) WLF file currently in use:vsim.wlf