计算机网络:网络层 - 虚拟专用网 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 地址与互联网通信了。


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter开发实战-创建一个微光加载效果

flutter开发实战-创建一个微光加载效果 当加载数据的时候,loading是必不可少的。从用户体验(UX)的角度来看,最重要的是向用户展示加载正在进行。向用户传达数据正在加载的一种流行方法是在与正在加载的内容类型近似的形状上显示带…

算法:分治(归并)题目练习

目录 题目一:排序数组 题目二:数组中的逆序对 题目三:计算右侧小于当前元素的个数 题目四:翻转对 题目一:排序数组 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入&#xf…

python 逻辑控制语句、循环语句

文章目录 一、逻辑控制语句(if、elif、else)1.1 单个条件的逻辑判断语句1.2 多个条件的逻辑判断语句 二、循环语句2.1 while 循环2.2 for 循环2.2.1 循环使用 else 语句 一、逻辑控制语句(if、elif、else) Python 条件语句是通过一…

el-date-picker 有效时间精确到时分秒 且给有效时间添加标记

el-date-picker实现有效日期做标记且时分秒限制选择范围 代码如下&#xff1a; // html部分 <el-date-pickerv-model"dateTime"type"datetime":picker-options"pickerOptions" > </el-date-picker>// js部分 /*** 回放有效日期开始时…

24年计算机等级考试22个常见问题解答❗

24年9月计算机等级考试即将开始&#xff0c;整理了报名中容易遇到的22个问题&#xff0c;大家对照入座&#xff0c;避免遇到了不知道怎么办&#xff1f; 1、报名条件 2、报名入口 3、考生报名之后后悔了&#xff0c;不想考了&#xff0c;能否退费&#xff1f; 4、最多能够报多少…

Git进阶使用(图文详解)

文章目录 Git概述Git基础指令Git进阶使用一、Git分支1.主干分支2.其他分支2.1创建分支2.2查看分支1. 查看本地分支2. 查看远程分支3. 查看本地和远程分支4. 显示分支的详细信息5. 查看已合并和未合并的分支 2.3切换分支1. 切换到已有的本地分支2. 创建并切换到新分支3. 切换到远…

2-11 基于matlab的BP-Adaboost的强分类器分类预测

基于matlab的BP-Adaboost的强分类器分类预测&#xff0c;Adaboost是一种迭代分类算法&#xff0c;其在同一训练集采用不同方法训练不同分类器&#xff08;弱分类器&#xff09;&#xff0c;并根据弱分类器的误差分配不同权重&#xff0c;然后将这些弱分类器组合成一个更强的最终…

第二十五篇——信息加密:韦小宝说谎的秘诀

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 加密这件事&#xff0c;对于这个时代的我们来说非常重要&#xff0c;那么…

Redis缓存的一些概念性问题

目录 缓存模型和思路 缓存更新策略 数据库和缓存不一致 缓存与数据库双写一致 缓存穿透 缓存雪崩 缓存击穿 速度快,好用&#xff0c;内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力 缓存模型和思路 标准的操作方式就是查询数据库之前先…

scratch编程03-反弹球

这篇文章和上一篇文章《scratch3编程02-使用克隆来编写小游戏》类似&#xff08;已经完全掌握了克隆的可以忽略这篇文章&#xff09;&#xff0c;两篇文章都使用到了克隆来编写一个小游戏&#xff0c;这篇文章与上篇文章不同的是&#xff0c;本体在进行克隆操作时&#xff0c;不…

Solr7.4.0报错org.apache.solr.common.SolrException

文章目录 org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"Exception writing…

账号和权限的管理

文章目录 管理用户账号和组账号用户账号的分类超级用户普通用户程序用户 UID&#xff08;用户id)和(组账号)GIDUID用户识别号GID组标识号 用户账号文件添加用户账号设置/更改用户口令 管理用户账号和组账号 用户账号的分类 超级用户 root 用户是 Linux 操作系统中默认的超级…

Python学习笔记15:进阶篇(四)文件的读写。

文件操作 学习编程操作中&#xff0c;我觉得文件操作是必不可少的一部分。不管是读书的时候学习的c&#xff0c;c&#xff0c;工作的前学的java&#xff0c;现在学的Python&#xff0c;没学过的php和go&#xff0c;都有文件操作的模块以及库的支持&#xff0c;重要性毫无疑问。…

HCIA-速查-ENSP模拟器2步清空配置

需求&#xff1a;清空模拟器配置 清空当前图中配置 步骤1&#xff1a;reset saved-configuration 后输入y确认 步骤2&#xff1a;reboot后输入n否认再输入y确认 验证已经清空配置

idea http client GET 请求 报503错误

idea 提供的 http client 插件&#xff0c;在 GET 请求时总是 报503 的错误&#xff0c;但请求URL可以在浏览器中正常访问。 GET localhost:8080/student Response file saved. > 2024-06-20T160906.503.html 有一种原因跟本地配置的代理有关&#xff0c;如下图。如果在…

基于JSP的高校信息资源共享平台

开头语&#xff1a; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果你对高校信息资源共享平台感兴趣或者有相关需求&#xff0c;可以通过文末的联系方式找到我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;IDEA…

Java23种设计模式(五)

1、MVC 模式 MVC 模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff09; 模式。这种模式用于应用程序的分层开发。 Model&#xff08;模型&#xff09; - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑&#xff0c;在数据变化时更新控制器。…

前缀和+双指针,CF 131F - Present to Mom

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 131F - Present to Mom 二、解题报告 1、思路分析 很经典的一种把列看作cell 来进行双指针/递推的题型 我们考虑&#xff0c;可以预处理出原矩阵中的所有star 然后我们去枚举矩形的上下边界&#xff0c;把…

python:faces swap

# encoding: utf-8 # 版权所有 2024 涂聚文有限公司 # 许可信息查看&#xff1a;pip install boost # 描述&#xff1a;pip install boost # pip install dlib # pip install cmake3.25.2 # pip install dlib19.24.2 如果安装不上&#xff0c;按此法 # Author : geovindu,G…

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver&#xff1a;v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher&#xff1a;3.12.2 SqlCipher cli(ubuntun)&am…