HCIA项目实践(网络)---NAT地址转化技术
十三 NAT网络地址转换技术
13.1 什么是NAT
NAT(Network Address Translation)地址转换技术,是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络,有效解决了 IPv4 地址空间不足的问题。在 NAT 转换过程中,路由器会在数据包从内部网络发往外部网络时,将源 IP 地址替换为公有 IP 地址,并记录转换关系;当外部网络回应数据包时,再根据记录将目标 IP 地址转换回内部私有 IP 地址,从而实现内外网络间的通信。
(实现公网地址和私网地址之间的转换)
13.2 NAT技术的原理
当内部网络的数据包发往外部网络时,NAT 设备(如路由器)修改数据包的源 IP 地址,将私有 IP 替换为公网 IP,并记录映射关系;当外部响应数据包返回时,NAT 设备依据映射关系,把目的 IP 地址从公网 IP 还原为私有 IP,确保数据包准确送达内部设备。
13.3 IP地址的A,B,C,D,E分类
(1)A 类地址
范围:0.0.0.0 到 127.255.255.255。第一位为 “0”,表示网络号,后面 24 位表示主机号。
默认子网掩码:255.0.0.0。
用途:适用于拥有大量主机的超大型网络,如国家级网络或大型跨国公司网络等。
(2)B 类地址
范围:128.0.0.0 到 191.255.255.255。前两位为 “10”,网络号占 16 位,主机号占 16 位。
默认子网掩码:255.255.0.0。
用途:常用于中等规模的网络,如一些中型企业、学校或科研机构的网络。
(3)C 类地址
范围:192.0.0.0 到 223.255.255.255。前三位为 “110”,网络号占 24 位,主机号占 8 位。
默认子网掩码:255.255.255.0。
用途:适用于小型网络,如小型企业、办公室或家庭网络等。
(4)D 类地址
范围:224.0.0.0 到 239.255.255.255。前四位为 “1110”,是多播(组播)地址。
特点:主要用于多播通信,即一台主机向一组主机发送数据,这些主机可以在不同的网络中,通过加入同一个多播组来接收数据。
用途:常用于视频会议、在线直播、游戏等需要将数据同时发送给多个接收者的场景。
(5)E 类地址
范围:240.0.0.0 到 255.255.255.255。前四位为 “1111”。
特点:保留为实验和研究使用,一般不会在普通的网络环境中使用。
# A,B,C--单播地址--既可以做源IP地址,也可以做目标IP地址# D--组播地址--仅能作为目标IP使用,不能作为源IP使用# E--保留地址# 单播:一对一 广播:一对所有 组播:一对多(同一个组播组)A:0XXX XXXX (0.0.0.0-127.255.255.255) 大型网络:默认掩码255.0.0.0B:10XX XXXX (128.0.0.0-191.255.255.255) 中型网络:默认掩码255.255.0.0C:110X XXXX (192.0.0.0-223.255.255.255) 小型网络:默认掩码255.255.255.0D:1110 XXXX (224.0.0.0-239.255.255.255)E:1111 XXXX (240.0.0.0-255.255.255.255)
特殊IP地址
#特殊IP地址(1)127.0.0.1-127.255.255.255 环回地址作用:用于本地主机进行网络软件测试以及本地进程间通信。发送到环回地址的数据不会真正发送到网络,而是直接返回给本地主机,可验证网络协议栈是否正常工作,便于诊断网络配置和软件问题。(2)255.255.255.255 受限广播地址作用:用于向同一网段内的所有设备发送消息,可实现网络发现、设备查找及 DHCP 请求等功能,方便网络中的信息交互与配置。(3)主机位全是1的地址 直接广播地址在 IPv4 中,它用于向特定网络中的所有主机发送数据包,如子网广播地址可实现子网内全体主机接收消息。作用:让网络中的一台设备向同一网段的所有其他设备快速发送相同信息,常用于网络发现、动态分配地址请求等场景,以提高网络通信效率。(4)主机位全是0的地址 192.168.1.0===192.168.1.x --网段(网络号,网络地址)是网络地址,用于标识一个特定的网络,代表整个网段而不是某台具体主机,如 192.168.1.0 表示一个 C 类网络。作用:在网络路由和寻址中,帮助路由器等设备识别和区分不同的网络,以便正确地转发数据包,实现网络之间的通信和数据传输。(5)0.0.0.0 它通常表示不确定的、无效的或未指定的网络地址,在网络配置中常作为默认路由或用于表示本机的所有网络接口。(可以代表没有地址,可以代表所有地址)作用:主要是在服务器启动时,绑定到 0.0.0.0 表示监听所有可用的网络接口,还可用于动态分配 IP 前的临时占位及作为默认路由目标,引导未匹配其他路由的流量。(6)169.254.0.0/16 本地链路地址是自动专用 IP 寻址(APIPA)使用的地址范围,属于链路本地地址,用于在没有 DHCP 服务器时给主机自动分配 IP。作用:当主机无法从 DHCP 服务器获取动态 IP 时,可自动从该范围内获取 IP 实现本地网络通信,方便临时组网或应急网络连接。
注意:在IP地址空间中,A,B,C三类IP地址中各有一部分IP地址被称为私有地址(私网地址),其余的地址被称为公网地址(公有地址)
私网地址在A.B.C三类IP地址的范围:
| 地址类型 | 范围 |
|---|---|
| A类 | 10.0.0.0–10.255.255.255 |
| B类 | 172.16.0.0–172.31.255.255 |
| C类 | 192.168.0.0–192.168.255.255 |
13.4 公网地址和私网地址
公网地址:是在互联网上具有全球唯一性的 IP 地址,由互联网相关机构统一分配。可在公共互联网上直接进行路由和寻址,能使设备与全球范围内的其他网络设备进行通信,是互联网中设备实现跨网络数据交互的正式标识,如网站服务器、企业网关等对外服务的设备通常使用公网地址。
私网地址:私有 IP 地址,是为满足内部网络通信需求而专门预留的特定地址段,如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 等。私网地址不能在公网直接路由,仅用于局域网内设备的标识与通信,通过网络地址转换(NAT)技术可实现与公网的间接通信,以节省公网地址资源并提高网络安全性。
相关文章:
HCIA项目实践(网络)---NAT地址转化技术
十三 NAT网络地址转换技术 13.1 什么是NAT NAT(Network Address Translation)地址转换技术,是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…...
VS studio报错cmake version 3.29.5-msvc4,但是没有其他信息问题解决
背景: windows电脑用VS studio 2022打开一个cmake项目,编译cmake通过,但是没有产生exe文件,IDE也没有打印其他错误信息提示,只有下图: cmake version 3.29.5-msvc4 一开始以为是编译器等问题,…...
免费deepseek的API获取教程及将API接入word或WPS中
免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...
langchain学习笔记之小样本提示词Few-shot Prompt Template
langchain学习笔记之小样本提示词 引言 Few-shot Prompt Templates \text{Few-shot Prompt Templates} Few-shot Prompt Templates简单介绍示例集创建创建 ExamplePrompt \text{ExamplePrompt} ExamplePrompt与 ExampleSelector \text{ExampleSelector} ExampleSelector创建 Fe…...
【CS.SE】优化 Redis 商户号池分配设计:高并发与内存管理
优化 Redis 商户号池分配设计:高并发与内存管理 背景 在分布式交易系统中,商户号池管理是核心模块之一。传统的商户号生成方式,依赖数据库预分配号段,导致大量号段浪费,并且在高并发请求下,性能难以满足需…...
5、《Spring Boot自动配置黑魔法:原理深度剖析》
Spring Boot自动配置黑魔法:原理深度剖析 一、引言:为什么Spring Boot能“开箱即用”? Spring Boot的核心理念是**“约定优于配置”,开发者只需引入一个spring-boot-starter-web依赖,就能直接编写RESTful API…...
稀土抑烟剂——为纺织品安全加持,保护您的每一寸触感
一、稀土抑烟剂的基本概念 稀土抑烟剂是基于稀土元素(如稀土氧化物和稀土金属化合物)研发的一类新型阻燃材料。它能够有效提高纺织品的阻燃性,抑制火灾发生时产生的烟雾和有害气体,减少火灾对人体的危害。稀土抑烟剂具有更强的稳…...
如何使用CSS画一个三角形,原理是什么?
如何用 CSS 画一个三角形?原理和实战指南 一、核心原理 CSS 画三角形的本质是利用边框(border)的叠加特性。当一个元素的宽高为 0 时,其边框会以对角线形式相交,形成四个独立的三角形区域。通过控制某一边的边框颜色为…...
Docker拉不下来镜像问题解决法案
打开docker的设置界面 配置如下: vi /etc/docker/daemon.json {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["…...
DeepSeek 多模态大模型Janus-Pro本地部署教程
1.部署环境配置 我个人用的是Mac的m1pro 16512配置,我跑了1B的版本很流畅,7B的也可以跑起来,稍微感觉有一些卡顿。 需要安装Git-lfs,访问官网下载安装包安装,这个工具是用于下载大型文件必备的软件,这里用…...
笔记8——模式匹配 match语句(仅在Python 3.10及以上版本中可用)
文章目录 模式匹配 match语句(仅在 Python 3.10及以上版本 中可用)基本语法基本匹配操作应用场景 模式匹配 match语句(仅在 Python 3.10及以上版本 中可用) Python 3.10 及以上版本中才引入了 match 语句用于简化复杂的条件判断和数据解构;类似于其他语言中的 swit…...
maven-antrun-plugin插件的用法
maven-antrun-plugin 是 Maven 中一个非常强大的插件,它允许你在 Maven 构建过程中运行 Apache Ant 任务。通过这个插件,你可以在 Maven 构建的各个阶段(如 compile、package 等)中执行自定义的 Ant 任务,比如复制文件…...
iOS主要知识点梳理回顾-4-运行时类和实例的操作
类和实例的操作 iOS 运行时(Objective-C Runtime)提供了丰富的 API 来对类进行动态操作,包括创建类、修改类的结构、添加方法、替换方法等。这对于实现动态特性、AOP(面向切面编程)、方法拦截等功能非常重要。以下举例…...
vue2和vue3生命周期的区别通俗易懂
用最直白的对比帮你理解 Vue2 和 Vue3 生命周期的区别,就像对比手机系统的升级: 一、生命周期阶段对比表(老手机 vs 新手机) 阶段Vue2(老系统)Vue3(新系统)变化说明初始化beforeCre…...
使用 meshgrid函数绘制网格点坐标的原理与代码实现
使用 meshgrid 绘制网格点坐标的原理与代码实现 在 MATLAB 中,meshgrid 是一个常用函数,用于生成二维平面网格点的坐标矩阵。本文将详细介绍如何利用 meshgrid 函数生成的矩阵绘制网格点的坐标,并给出具体的代码实现和原理解析。 实现思路 …...
postgresql源码学习(59)—— 磁盘管理器 SMGR
一、 定义及作用 PostgreSQL 的磁盘管理器(Storage Manager,简称 SMGR)是数据库系统中负责管理底层存储的核心模块。磁盘管理器并非直接操作磁盘上的文件,而是通过VFD(虚拟文件描述符,将在后续学习…...
Spring Boot(8)深入理解 @Autowired 注解:使用场景与实战示例
搞个引言 在 Spring 框架的开发中,依赖注入(Dependency Injection,简称 DI)是它的一个核心特性,它能够让代码更加模块化、可测试,并且易于维护。而 Autowired 注解作为 Spring 实现依赖注入的关键工具&…...
UE_C++ —— Structs
目录 一,实现一个UStruct 二,Struct Specifiers 三,最佳做法与技巧 结构体(Struct)是一种帮助组织和操作相关属性的数据结构;在引擎中,结构体会被引擎反射系统识别为 UStruct,但不…...
ArcGISPro 新建shp+数据结构
import arcpy# 设置工作空间和 Shapefile 存放路径 shp_path r"C:\path\to\your\folder\PolygonZY.shp" # Shapefile 存放路径 fields [("CHBH", "TEXT", 20),("ZCMC", "TEXT", 100),("ZCLX", "TEXT"…...
DeepSeek教unity------MessagePack-06
无类型 Typeless 无类型的 API 类似于 BinaryFormatter,因为它会将类型信息嵌入到数据块中,所以在调用 API 时不需要显式指定类型。 MessagePackSerializer.Typeless 是 Serialize/Deserialize<object>(TypelessContractlessStandardResolver.In…...
基于ChatGPT的Markdown文档自动化多语言翻译方案
1. 项目概述:用AI为你的博客插上多语言的翅膀 如果你和我一样,运营着一个技术博客或文档站点,那么“多语言化”这个念头一定在你脑海里闪过不止一次。想让自己的技术思考、项目经验被更广泛的读者看到,语言是最大的壁垒。手动翻译…...
DifyAIA:基于Dify平台的AI助手增强开发实战指南
1. 项目概述与核心价值最近在AI应用开发领域,一个名为“DifyAIA”的项目在开发者社区里引起了不小的讨论。这个由BannyLon维护的开源项目,本质上是一个针对Dify平台的增强型AI助手(AI Assistant)实现方案。如果你正在使用或关注Di…...
ARM编译器命令行选项详解与嵌入式开发优化实践
## 1. ARM编译器命令行选项的核心价值与使用场景在嵌入式开发领域,编译器命令行选项是工程师控制代码生成行为的直接手段。以ARM编译器为例,其命令行选项体系具有以下典型特征:- **架构控制粒度细**:通过--cpu指定具体处理器型号&…...
开发者如何构建个人编码计划管理工具:从设计到部署全栈实践
1. 项目概述:一个为开发者量身定制的编码计划管理工具最近在GitHub上看到一个挺有意思的项目,叫“echome123/coding-plan”。光看这个名字,你可能会觉得它又是一个普通的待办事项应用,但如果你点进去,会发现它其实是一…...
HapticVLA:无触觉传感器的机器人触觉感知新方法
1. HapticVLA:无触觉传感器的触觉感知机器人操作新范式在机器人操作领域,触觉感知一直被视为实现精细操作的关键能力。想象一下,当你试图拿起一个鸡蛋时,指尖的触觉反馈会告诉你施加了多少力——太轻会掉落,太重则会捏…...
FastAPI扩展库实战:构建生产级API服务的标准化工具箱
1. 项目概述:一个为FastAPI应用量身定制的“瑞士军刀”如果你正在用FastAPI构建API服务,并且已经厌倦了在每个新项目里重复编写那些“轮子”——比如统一的响应格式封装、全局异常处理、数据库连接池管理、或是繁琐的权限验证中间件——那么,…...
vue.js 课程自己编写小游戏
一、太空大战<template><div class"game" keydown"onKey" tabindex"0"><div class"score">分数:{{ score }}</div><!-- 子弹 --><divclass"bullet"v-for"(b, i) in bulle…...
【图像隐写】DWT和DCT的鲁棒图像水印系统【含Matlab源码 15418期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...
Godot 4实现N64复古像素风格:着色器技术深度解析
1. 项目概述:当复古像素遇上现代渲染如果你和我一样,对任天堂N64那个时代的游戏画面有着特殊的情结,同时又痴迷于Godot引擎的现代工作流,那么“MenacingMecha/godot-n64-shader-demo”这个项目绝对会让你眼前一亮。这不仅仅是一个…...
普通机床改造成键槽铣床
普通机床在机械加工领域应用广泛,但功能相对单一,若想拓展其加工范围,将其改造成键槽铣床是个不错的选择。改造的核心在于通过加装特定部件,让机床具备铣削键槽的能力。普通机床原本的直线运动和旋转运动基础,为改造提…...
