baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 计算机网络

    • 字节网络问题
    • https详解
    • 三次握手四次挥手
    • HTTP相应状态码
    • cookie、session、token
    • ICMP
    • 什么是网桥
    • ARP协议
    • DHCP协议
    • NAT协议
      • 1. 什么是NAT
      • 2. NAT 解决了什么问题
      • 3. NAT实现方式
      • 4. NAT流程
      • 5.NAT的优缺点
    • 代理服务器
    • TCP特性
    • 什么是SDN
    • 负载均衡
    • CDN
    • DNS详细过程
    • HTTP3
    • http如何实现长链接
    • 家用路由器原理
  • 操作系统

  • 算法

  • 计算机基础
  • 计算机网络
xugaoyi
2023-04-05
目录

NAT协议

# 1. 什么是NAT

NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程, 主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭。

# 2. NAT 解决了什么问题

IPv4地址随着用户的增多压力不断增大,但是每一个路由器的IP地址下面都有很多的私有地址,外部消息只需要找到这个路由器,这个路由器把消息找到真正目的主机传递给它即可。每一个路由器都可以分配很多私有地址,并且不同路由器的私有地址可以重复,通过这种地址转换,能够大大增加地址的容量。

①10.0.0.0~10.255.255.255/8

②172.16.0.0~172.31.255.255/12

③192.168.0.0~192.168.255.255/16

# 3. NAT实现方式

静态转换 Static Nat 指将内部网络的==私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。

动态转换 Dynamic Nat 指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。

端口多路复用 OverLoad 改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

# 4. NAT流程

image-20230406000036626

image-20230406000459505

当本地主机向网络主机发送请求时: (1)192.168.1.2(发送方)----->GATWAY 192.168.1.x接收数据(接收方)

(2)GATEWAY将源地址伪装成 202.20.64.x(发送方)------>发送给202.20.64.3(接收方) 同时把192.168.1.2和192.168.1.x的对应关系记录在状态表中。

当网络主机向本地主机返回数据时: (1)202.20.64.3(发送方,源地址)-----GATEWAY202.20.64.X(接收方,目的地址) (2)NAT设备查找状态表,使用本地私有地址主机 192.168.1.2替换196.168.1.X,此时196.168.1.2为目的地址。

状态表是私有地址和公有地址的一种映射。

# 5.NAT的优缺点

优点:NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

缺点:

  1. 由于内网是私有IP,所以不能直接从公网访问内部网络服务。
  2. 有一些应用程序虽然是用A端口发送数据的,但却要用B端口进行接收,不过NAT设备翻译时却不知道这一点,它仍然建立一条针对A端口的映射,结果对方响应的数据要传给B端口时,NAT设备却找不到相关映射条目而会丢弃数据包。
编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19
DHCP协议
代理服务器

← DHCP协议 代理服务器→

最近更新
01
spark基础
02-22
02
mysql读写分离和分库分表
02-22
03
数据库迁移
02-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式