NAT网络地址转换学习
2023-09-14 09:11:21 时间
转自:https://blog.csdn.net/g_super_mouse/article/details/109865408
https://zhuanlan.zhihu.com/p/26992935
1.简介
NAT(Network Address Translation,网络地址转换),在内网中已经分配了IP地址(即仅在本专用网内使用的专用地址),想上网那么就需要用到NAT技术。
需要NAT路由器,至少有一个有效的外部全球IP地址。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
缓解了IPv4地址不足的问题,并且有效防止外部攻击,隐藏内部的计算机(因为外界只能看到公网ip地址)。
名词解释:
NAT技术:正常数据转发时,IP头部的源和目的地址以及端口号是不会被更改的;而使用了NAT技术后,它将更改头部内容以达实现隐藏内外部主机真实地址、多台主机共享少量IP访问内外部网络、解决IP地址空间重叠、服务器负载均衡等功能。(会更改IP数据包头部内容)
2.实现方式
2.1 静态转换
内网与外网1v1的转换,并不节省外网地址,一般不用。
2.2 动态转换
当内外网之间传输数据时,从外网IP池中选择ip与内网ip建立映射,当通信结束时,将ip放回到公网ip池中。
2.3 端口映射
内网所有主机可共享同一外网ip地址,通过不同的端口映射,那么如何将大量的内部地址,映射成少量的外部地址?
对于TCP/UDP传输层,它这个地方的port是用来和上层软件联系的,端口号23,对应了Telnet;端口号80,对应了Http等等。(所以我就有疑问了,这是怎么搞的?那怎么映射呢?传输层目的port不能更改,不太懂。)
3.局限性
- 在一个具有NAT功能的路由器下的主机并没有建立真正的端对端连接,并且不能参与一些因特网协议。
- NAT违反了IP地址结构模型的设计原则。IP地址结构模型的基础是每个IP地址均标识了一个网络的连接。但NAT可能就很多主机使用相同的IP地址。
- NAT使得IP协议从面向无连接变成面向连接。NAT必须维护专用IP地址与公用IP地址以及端口号的映射关系。(无连接是指无需维护状态信息,如果路由器出现错误,那么就有问题?)
- NAT违反了基本的网络分层结构模型的设计原则。因为在传统的网络分层结构模型中,第N层是不能修改第N+1层的报头内容的。(自顶向下,下面的不能更改上层的协议内容)
相关文章
- Android图片转换
- Cocos2D添加精灵纹理滤镜实现图像复古效果的转换
- 如何在 Pandas 中将对象转换为浮点数(附示例)
- Java实现 LeetCode 552 学生出勤记录 II(数学转换?还是动态规划?)
- Java实现蓝桥杯模拟存储转换
- Java实现 蓝桥杯 算法训练 大小写转换
- 转安装 Microsoft Office 环境下,几种常见的Word转换PDF方法
- Activiti 由bpmn文件到BpmnModel实体类转换
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
- 一个有意思还有用的Python包-汉字转换拼音(附零基础学习教程)
- Java中StringBuilder与String的互相转换
- 数据转换
- AI机器学习模型python到C/C++的转换播
- 【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
- [springMVC学习]7、数据验证及其格式转换(debug源码解析)
- OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换(cv.cvtColor)
- MySQL MGR 单组模式转换为多组模式
- 【OSTEP】分段(Segmentation) | 地址分段 | 带分段的地址转换
- 一文带你弄懂C++中的ANSI、Unicode和UTF8三种字符编码及相互转换