网络原理(7)-NAT(Network Address Translation)

1.把IP地址分为两大类:

1.外网IP/公网IP

全球互联网上唯一;

不允许内网重复使用。

2.内网IP/私网IP

在以下范围内的都叫内网:

10.*:10.0.0.0~10.255.255.255

172.16~172.31*:172.16.0.0~172.31.255.255

192.168.*:192.168.0.0~192.168.255.255

2.NAT

我们知道,相同局域网内的设备可以直接连接。

而约定不同局域网的IP地址允许重复,大部分设备都是在局域网中的,这就大大提高了IP的利用率。

因为两个局域网的IP有可能相同,所以不同局域网内的设备不能直接连接。

那么,如果跨局域网访问该怎么办呢?

分为以下几类:

1.同一局域网内的两个设备访问

允许访问。

2.两个带有外网IP的设备访问

两个外网IP也是全局唯一的。允许访问。

3.不同局域网中的两个设备访问

不允许访问!

4.外网IP的设备访问内网IP的设备

不允许访问!

5.内网IP的设备访问外网IP的设备

触发NAT。NAT设备(路由器)对IP数据报中的"源IP"做出修改,修改成自己的IP。

这个过程涉及一次NAT;

NAT的目的是:访问外网设备,需要外网IP;

一台运营商路由器可以代指上百台内网设备,多台内网设备公用一个外网IP。

*

但是,仔细想想,如果多台内网IP设备访问一个外网IP设备,路由器在NAT时,把不同内网IP都替换为同一路由器外网IP,那么服务器在计算/返回响应时,该怎么区分应该返回给哪一台设备呢?

如下图所示:

端口号区分

端口号可以区分一台主机上的不同应用程序,也可以区分不同主机上的不同应用程序。

如图:服务器根据端口号,就知道这是两个不同的客户端请求,返回的响应就包含了不同的端口号

NAT设备中维护了一个表,其中包含了映射关系:

*

那么,还有一个问题,如果两个不同的内网设备系统随机分配到相同的端口号(虽然概率很小),那又该怎么处理呢?

解决方法:路由器NAT时会重新分配一个新的外网源端口

相关推荐
古法老登瞎折腾6 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
hhhjhl7 小时前
Protobuf.js 跨端三方库仓颉适配全流程
javascript·网络·udp
智能运维指南7 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
ITxiaobing20238 小时前
中国公司海外广告投放的 IP 地址库选型:从“查归属”到“验真实”的工程视角
网络·网络协议·tcp/ip
yz_aiks8 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)
java·spring boot·大模型·ai agent·spring ai
金銀銅鐵8 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设8 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
KKKlucifer8 小时前
运营商非结构化文档安全管控体系建设实践
大数据·网络·安全
jason成都8 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复
java·gnss·rtklib·rtklib_java
鱼宵9 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作