NAT、代理服务、内网穿透

NAT、代理服务、内网穿透

NAT 技术背景

NAT 技术当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能;

• NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是就是一种将私有 IP 和全局IP 相互转化的技术方法:

• 很多学校, 家庭, 公司内部采用每个终端设置私有 IP, 而在路由器或必要的服务器上设置全局 IP;

• 全局 IP 要求唯一, 但是私有 IP 不需要; 在不同的局域网中出现相同的私有 IP是完全不影响的;

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

那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的 IP 都是相同的. 那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候 NAPT 来解决这个问题了. 使用 IP+port 来建立这个关联关系

这种关联关系也是由 NAT 路由器自动维护的. 例如在 TCP 的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

NAT 技术的缺陷

由于 NAT 依赖这个转换表, 所以有诸多限制:

• 无法从 NAT 外部向内部服务器建立连接;

• 装换表的生成和销毁都需要额外开销;

外部向内部服务器建立连接;

• 装换表的生成和销毁都需要额外开销;

• 通信过程中一旦 NAT 设备异常, 即使存在热备, 所有的 TCP 连接也都会断开;

相关推荐
杰瑞学AI12 小时前
我的全栈学习之旅:FastAPI (持续更新!!!)
后端·python·websocket·学习·http·restful·fastapi
我梦之613 小时前
libevent输出缓存区的数据
服务器·网络·c++·缓存
帅帅梓13 小时前
docker网络
网络·docker·php
white-persist14 小时前
SQL 注入详解:从原理到实战
前端·网络·数据库·sql·安全·web安全·原型模式
wanhengidc14 小时前
云手机的挂机功能涉及到哪些内容
运维·服务器·网络·游戏·智能手机
AORO202514 小时前
防爆手机与普通手机的区别!
网络·5g·安全·智能手机·电脑·信息与通信
非凡ghost15 小时前
猫眼浏览器(Chrome内核增强版浏览器)官方便携版
前端·网络·chrome·windows·软件需求
阿拉斯加大闸蟹15 小时前
[SIGCOMM‘25] Revisiting RDMA Reliability for Lossy Fabrics
网络·架构
嗨丶王哪跑15 小时前
网络安全审计技术原理与应用
运维·网络·安全·web安全
RTC老炮15 小时前
webrtc弱网-RobustThroughputEstimator源码分析与算法原理
网络·算法·webrtc