计算机网络:网络层 - 虚拟专用网 VPN 网络地址转换 NAT

计算机网络:网络层 - 虚拟专用网 VPN & 网络地址转换 NAT

    • 专用地址与全球地址
    • 虚拟专用网 VPN
      • 隧道技术
    • 网络地址转换 NAT
      • 网络地址与端口号转换 NAPT


专用地址与全球地址

考虑到 IP 地址的紧缺,以及某些主机只需要和本机构内部的其他主机进行通信,互联网管理机构将一部分 IP 地址作为专用地址(private address)供机构内部自行分配使用。

专用地址只能用于一个机构的内部通信,不能用于和互联网上的主机通信(互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发)。不同的网络内部,可以使用相同的专用地址

专用地址也称为:本地地址私网地址内网地址

专用地址相对的是全球地址,这是互联网主机通信所必须具有的、全球唯一的 IP 地址,必须向互联网的管理机构申请才可以使用。

全球地址也称为:公用地址公网地址外网地址

互联网管理机构划分的三个 IPv4 专用地址块如下:

  • 10.0.0.0/8,即从 10.0.0.010.255.255.255
  • 172.16.0.0/12,即从 172.16.0.0172.31.255.255
  • 192.168.0.0/16,即从 192.168.0.0192.168.255.255

虚拟专用网 VPN

采用专用 IP 地址的互连网络称为专用网。如果一个机构有很多部门且分布在世界各地,就可以利用公用的互联网作为此机构各专用网之间的通信载体,形成一个更大的专用网,这样的专用网称为虚拟专用网 VPN (Virtual Private Network)。

在这里插入图片描述

如图所示,左侧的A是一个专用网,右侧的B也是一个专用网。它们通过一对路由器R1R2实现通信,从而实现将一个专用网合并成一个更大的虚拟专用网VPN。但其实两个专用网之间通信是经过了因特网的。


隧道技术

虚拟专用网是基于隧道技术实现的,如下图:

在这里插入图片描述

主机X想要给主机Y发送信息,此时X将自己的专用地址作为源地址Y专用地址作为目的地址构建一个报文发送出去。

路由器R1接收到该报文后,将整个报文作为数据部分,重新封装为一个新的IP数据报。此时新的数据报源地址变为R1的接口的地址125.1.2.3目的地址变为R2接口的地址194.4.5.6。由于这两个都是合法的全球地址,可以通过隧道在互联网正常传输。

R2收到该报文后,提取出其中的原始数据报,再发往部门B内部,此时Y就可以收到该报文了。

以上通信过程,本质还是专用网专用网的通信,那么专用网能不能和互联网上的主机通信呢?是可以的,此时就需要网络地址转换 NAT


网络地址转换 NAT

专用网内的主机如果想要和互联网上的主机通信,使用得最多的方法是网络地址转换 NAT(Network Address Translation)。

这种方法需要在专用网连接到互联网的路由器上安装 NAT 软件装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的全球 IP 地址

所有使用专用地址的主机在和外界通信时都要在 NAT 路由器上将其专用地址转换成全球 IP 地址才能和互联网通信

如图所示:

在这里插入图片描述

专用网的主机想要连接互联网,此时经过NAT 路由器,路由器会做以下任务:

  1. 将IP数据报的源地址修改为全球IP地址
  2. NAT转换表中记录专用地址全球IP地址的映射关系
  3. 转发该数据报

由于源地址变成了全球IP,所以可以正常在互联网传输。

当互联网上的主机回应了该报文,往回发送一个报文,目的地址为刚刚的源地址,当报文传送到NAT 路由器,路由器会做以下任务:

  1. 查找自己的NAT转换表,找到该目的地址对应的专用地址
  2. 将IP数据报中的目的地址修改为对应的专用地址
  3. 转发该数据报

此时主机就可以收到回应报文了。

NAT 路由器具有多少个全球 IP 地址,就可以同时有几台主机访问互联网。

可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。
通过 NAT 路由器的通信必须由专用网内的主机发起,因此专用网内部的主机不能直接充当服务器用。


网络地址与端口号转换 NAPT

NAT 并不能节省全球 IP 地址。为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把运输层的端口号也利用上

这样就可以使多个专用网主机,共用 NAT 路由器上的一个全球 IP 地址,同时和互联网上的不同主机进行通信。

使用端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。

如图:

在这里插入图片描述

两个专用地址192.168.0.3192.168.0.4被转化为了同一个全球地址172.38.1.5。但是前者使用了端口号40001,后者使用了端口号40002,这样就可以区分两台主机,从而让它们用同一个全球 IP 地址与互联网通信了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717797.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MTANet: 多任务注意力网络,用于自动医学图像分割和分类| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 MTANet: Multi-Task Attention Network for Automatic Medical Image Segmentation and Classification MTANet: 多任务注意力网络,用于自动医学图像分割和分类 01 文献速递介绍 医学图像分割和分类是当前临床实践中的两个关键步骤,其准…

day12--150. 逆波兰表达式求值+239. 滑动窗口最大值+ 347. 前 K 个高频元素

一、150. 逆波兰表达式求值 题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/ 文章讲解:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html 视频…

初级篇-Docker容器知识

Docker容器 容器主要是解决跨平台、跨服务运行环境的问题 容器将运行业务应用所需要的东西进行打包,包括依赖项、配置、脚本、二进制文件等。在容器中运行镜像,不用担心不同环境下运行不一致的问题。 容器本质上是一个特殊的进程,将资源、…

【Nvidia+AI车载摄像头】超小尺寸300万像素车载环视摄像头方案

作为一家致力于成像和视觉技术的科技创新公司,于近日推出了基于安森美300万像素AR0341AT图像传感器的超小尺寸车载环视摄像头模组,可助力提高驾驶的安全指标,有效解决高速自动驾驶对卓越的HDR性能和图像质量的需求,并降低系统开发…

Navicat 安装及初步配置指南

Navicat 是一款广泛使用的数据库管理工具,支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。以下是 Navicat 安装步骤的详细说明: 在 Windows 上安装 Navicat 下载 Navicat 安装包: 访问 Navicat 官方网站:Navicat 官…

Linux 精通 4.2

reactor应用 response:回应的数据组织成包;request解析对方发来的data touch webserver.c int http_request(struct conn *c){// 传connect信息printf("request: %s\n", c->rbuffer) }int http_response(struct conn *c){}改reactor.c 的…

VM4.3 二次开发02 方案加载、执行及显示

效果 这是二次开发的第二个文章&#xff0c;所以不重复说明环境配置相关的内容。如果不懂的可以看本专栏的上一个文章。 海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果-CSDN博客 界面代码 <Window x:Class"VmTestWpf.App.MainWindow"x…

线程池吞掉异常的case:源码阅读与解决方法

1. 问题背景 有一天给同事CR&#xff0c;看到一段这样的代码 try {for (param : params) {//并发处理&#xff0c;func无返回值ThreadPool.submit(func(param));} } catch (Exception e) {log.info("func抛异常啦,参数是:{}", param) } 我&#xff1a;你这段代码是…

【idea】gradle多模块构建项目内存溢出终止问题解决

背景 idea构建多模块项目&#xff0c;构建报错 Daemon is stopping immediately JVM garbage collector thrashing and after running out of JVM memory 解决 进到下图目录下 在文件管理中进入上面目录添加gradle.properties文件&#xff0c;内容如下 org.gradle.jvmargs-…

vue项目——前端CryptoJS加密、解密

1、vue项目需要安装CryptoJS安装包 npm install crypto-js 2、在项目中引入CryptoJS import CryptoJS from crypto-js 3、使用&#xff0c;代码如下 // 此处key为16进制let key jiajiajiajiajiajiajiajia;console.log(密钥&#xff1a;, key);// key格式化处理key Crypt…

检索增强生成(RAG)的挑战与优化措施

如何理解检索增强生成&#xff08;RAG&#xff09; 简单来说&#xff0c;RAG就是让LLM通过外部知识源获取额外信息&#xff0c;从而生成更准确、更符合上下文的答案&#xff0c;并减少错误信息&#xff08;或称为“幻觉”&#xff09;的产生。 我们都知道&#xff0c;最先进的…

深度学习 --- stanford cs231学习笔记四(神经网络的几大重要组成部分)

训练神经网络1 1&#xff0c;激活函数&#xff08;activation functions&#xff09; 激活函数是神经网络之于线性分类器的最大进步&#xff0c;最大贡献&#xff0c;即&#xff0c;引入了非线性。 1&#xff0c;1 Sigmoid sigmoid函数的性质&#xff1a; 结合指数函数的图像可…

pycharm git配置

PyCharm 是一个强大的集成开发环境(IDE),它内置了 Git 集成,使得版本控制变得非常方便。以下是 PyCharm 中配置 Git 的基本步骤: 安装Git: 在开始之前,请确保已经在您的系统上安装了 Git。您可以通过官方网站下载并安装 Git。本系统用的是Git-2.29.2.2-64-bit 。 打开PyC…

离散数学复习

1.关系的介绍和性质 &#xff08;1&#xff09;序偶和笛卡尔积 两个元素按照一定的顺序组成的二元组就是序偶&#xff0c;使用尖括号进行表示&#xff0c;尖括号里面的元素一般都是有顺序的&#xff1b; 笛卡尔积就是有两个集合&#xff0c;从第一个集合里面选择一个元素&am…

Python对象复制竟然有这么多种方式,赶紧学起来!

目录 1、浅拷贝:copy模块的copy()函数 📋 1.1 浅拷贝原理揭秘 1.2 实战演示:列表与字典的浅拷贝 列表浅拷贝示例 字典浅拷贝示例 1.3 注意事项:共享引用与独立对象 2、深拷贝:copy模块的deepcopy()函数 📌 2.1 深拷贝实现机制解析 2.2 深拷贝优势分析 2.3 深度…

DoIP——step2:车辆发现

文章目录 前言一、IP地址配置1.1 AutoIP1.2 DHCP1.3 DoIP实体的IP地址配置流程二、车辆发现车辆声明报文内容如下:前言 完成诊断设备到车辆的物理连接并通过激活线使能诊断连接后边缘节点将会将连接状态传递至应用层,在开始车辆发现过程之前,需要先进行各自的IP地址配置,获…

“Redis中的持久化:深入理解RDB与AOF机制“

目录 # 概念 1. RDB持久化 1.1 备份是如何执行的&#xff08;RDB过程&#xff09; 1.2 配置文件信息 1.3 RDB持久化操作 1.4 RDB优势 1.5 RDB劣势 1.6 RDB做备份 2. AOF持久化 2.1 AOF开启及使用 2.2 异常恢复 2.3 配置文件操作 2.4 AOF持久化流程 2.5 优点 2.6…

基于Unet++在kaggle—2018dsb数据集上实现图像分割

目录 1. 作者介绍2. 理论知识介绍2.1 Unet模型介绍 3. 实验过程3.1 数据集介绍3.2 代码实现3.3 结果 4. 参考链接 1. 作者介绍 郭冠群&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究生 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff…

代发考生战报:HCIP H12-725安全变题了

代发考生战报&#xff1a;HCIP H12-725安全变题了&#xff0c;幸好当天找客服办理的包过服务&#xff0c;听同考场的考生说&#xff0c;考试全是新题&#xff0c;只有1-2个是题库上的题&#xff0c;自己考的都考挂了&#xff0c;帮我答题的老师很厉害&#xff0c;很赞&#xff…

CesiumJS【Basic】- #006 浏览器控制台查看位置角度

文章目录 浏览器控制台查看位置角度1 目标 浏览器控制台查看位置角度 1 目标 浏览器控制台查看位置角度