当前位置: 首页 > news >正文

5.4.1 虚拟专用网VPN

5.4.1 虚拟专用网VPN

我们已经学习了因特网的路由协议(5.3.1 因特网的路由协议(一)、5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议、5.3.3 因特网的路由协议(三)OSPF协议、5.3.4 因特网的路由协议(四)BGP协议)知道了路由器如何根据不同的路由协议来得到自己的路由表,这里我们要学习的是专用网络互连技术。

所谓的专用网一般指企事业单位内部的网络,随着经济全球化的发展越来越多的企业需要在全国乃至世界范围内建立多家分支机构,传统的专用网络中各个子公司或办事机构之间信息传送一般用租用专线的方式实现,这种连接方式最大的缺陷在于费用比较昂贵、不够灵活,随着因特网技术的发展现代企业越来越多的企业青睐于构建虚拟专用网(Virtual Private Network)简称VPN。

一、虚拟专用网

虚拟专用网摒弃了专线的连接方式,而是利用公共网络构建的私人专用网络。公共网络可以是因特网或者是各种类型的广域网比如帧中继网、ATM网络等,为了深入理解我们来举个例子。如图

VPN

假设一个企业有两个部门,部门A和B,分布在不同的地点,可能处于不同的城市也可能处在不同的国家,为了实现企业内部的专用网有效在两个部门之间进行通信和信息共享,我们可以直接将两个部门接入到公共网络中,利用公共网络平台来构建虚拟专用网。利用VPN技术使得部门A和B之间的通信对于互联网而言是不可见的,从而保证了专用要求的隐私性。

二、VPN的编址

在学习VPN工作原理之前我们先来学习一下VPN内的编址

  • VPN所提供的编址选择与专用网络一样,可以选择本地编址方案,也就是说它既可以分配全球的网络地址也可以使用私有地址(5.2.12 IP分组的转发(三))。前面我们已经说过本地地址无需向因特网管理机构申请,局限在内部网络中使用,由内部网络自行分配。而全球地址需要向因特网管理机构申请,在IPv4地址紧缺的情况下,VPN大多是采用本地编址的方法。

    • 本地地址——仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。本地地址又被成为私有地址只能用于内部通信,也就是只能用于一个局域网内部主机之间的通信,因为每家单位都可以使用这些地址,

      作为因特网专门负责地址分配的机构IANA明确规定了三块地址块空间只能用于专用互联网内部通信的IP地址空间也就是私有地址。(RFC1918)

      前缀最低地址最高地址
      10/810.0.0.010.255.255.255
      172.16/12172.16.0.0172.31.255.255
      192.168/16192.168.0.0192.168.255.255
    • 全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。

  • 我们前面图片为例,

    例子

    在两个部门网络组建的VPN中我们假设使用10.0.0.0进行编址,部门A中的一台主机X分配的地址是10.1.0.1,部门B主机Y分配的地址是10.2.0.3,因为这些地址都不属于全球地址,所以因特网的路由器在转发数据报的时候如果发现报文携带的目的地址是这些地址的话它会认为地址错误直接丢弃,不做其他处理,那么如何利用公共网络平台来构建专用网呢?

三、VPN工作原理

我们通过一个实例来介绍一下VPN的工作原理。如图

工作原理

部门A通过R1路由器接入到因特网,部门B通过R2路由器接入到因特网,假设部门A网络中的一台主机X向部门B网络中的一台主机Y发送数据报,X产生的数据报必将流经因特网才能够到达B网络,这里会引发两个问题

  1. X产生的数据报的首部中源IP地址10.1.0.1和目的IP地址10.2.0.3都属于网络内部地址,数据报无法直接通过因特网传输。
  2. 专用网络注重通信的隐私性,希望专用网内任意用户之间的通信细节对于公网是不可见的,如何在开放的互联网平台上保护用户的隐私,确保通信的私密性,这也是需要解决的问题。

VPN是如何解决上述两个问题呢?

  • 这里VPN的实现主要使用了两种基本技术:隧道传输加密技术
  • 为了实现VPN两个网点之间的数据传输,需要在两个网点的路由器之间建立一个传输的隧道,当然隧道是一个比较形象的说法,它不代表路由器之间传输的专线,隧道传输仅仅是完成一个IP-in-IP协议再封装的过程,即**VPN定义了两个网络的路由器之间通过Internet的一个隧道,并使用IP-in-IP封装通过隧道转发数据报。
  • 此外VPN将源端产生的数据报加密以后封装在外层数据报中来传输,即为了保证保密性,VPN把外发的数据报加密后,封装在另一个数据包中传输。
  • 隧道接受路由器将数据报解密,还原出内层数据报,然后转发该数据报。

下面我们结合上面的例子来说明一下VPN采用隧道技术的传输过程。如图

传输过程

主机X产生IP数据报,首部中的源地址和目的地址分别是10.1.0.1和10.2.0.3,数据报经过部门网络A的传输到达路由器R1,R1路由器将该IP数据报作为数据部分完整的封装到一个新的IP数据报的数据部分,新的IP数据报的首部中源IP地址就是路由器R1全球的IP地址,125.1.2.3目的地址填写的是R2的全球的IP地址194.4.5.6,这个经过再次封装之后的IP数据报就能够经过因特网顺利的传送到R2路由器,数据报到达R2以后,由路由器R2提取出内部的数据报,并根据内部数据报首部中的目的地址10.2.0.3,在部门B网络中完成最后的交付的任务。从整个的传输过程可以看出,VPN利用隧道的再封装过程来解决本地编址的专用网通过公共网络来进行通信的问题。

当然除了解决内部地址问题,隧道技术也有利于保护用户的隐私性。公网的路由器在对数据报进行解析、转发、处理的过程中它只查看外层数据报的首部信息,观测路由器R1和R2之间的通信细节,由于公网的路由器将内层的IP数据报视为数据部分,所以说对于专用网内所有主机之间的通信过程对外网的路由器是透明的,此外为了防止因特网上恶意用户截获篡改专用网内部的数据,加强专用网数据传输的安全性,由X产生的IP数据报在R1路由器上封装前还进行了加密处理。

相关文章:

5.4.1 虚拟专用网VPN

5.4.1 虚拟专用网VPN 我们已经学习了因特网的路由协议(5.3.1 因特网的路由协议(一)、5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议、5.3.3 因特网的路由协议(三)OSPF协议、5.3.4 因特…...

第42节:cesium 火焰效果(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><!-- :shouldAnimate="true" 添加动画 --><vc-viewer @ready...

MySQL基础篇第5章(排序与分页)

文章目录 1、排序1.1 排序规则1.2 单列排序1.3 多列排序 2、分页2.1 背景2.2 实现规则2.3 拓展 1、排序 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句的结尾。 1.2 …...

​LeetCode解法汇总2679. 矩阵中的和

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行…...

flask-apscheduler实现定时任务

秋风阁-北溪入江流 flask-apscheduler是一个支持apscheduler的flask插件&#xff0c;通过flask-apscheduler可以很方便的定义定时任务。 安装flask-apscheduler pip install flask-apschedulerflask-apscheduler组件 apscheduler库包含有组件&#xff1a; triggers&#xf…...

FPGA纯verilog实现UDP协议栈,sgmii接口SFP光口收发,提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案SFPGMII AXIS接口模块AXIS FIFOUDP协议栈1G/2.5G Ethernet PCS/PMA or SGMII 5、vivado工程详解6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利&#xff1a;工程代码的获取 1、前言 目前网…...

【Python入门系列】第十五篇:Python数据可视化和图表绘制

文章目录 前言一、可视化与绘图常用库二、Matplotlib1、折线图2、散点图3、柱状图&#xff1a; 三、Seaborn1、散点图2、箱线图3、小提琴图4、热力图 四、Plotly1、折线图2、散点图3、条形图 总结 前言 数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化&#xf…...

isBlank函数和isEmpty函数的区别

StrUtil.isBlank(CharSequence)&#xff1a;该方法用于判断字符串是否为空或仅包含空白字符。如果传入的字符串为null、空字符串(“”)或仅包含空白字符&#xff08;如空格、制表符、换行符等&#xff09;&#xff0c;则返回true&#xff1b;否则返回false。 StrUtil.isEmpty(…...

「SQL面试题库」 No_121 The Most Recent Three Orders

&#x1f345; 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起&#xff0c;全员免费参与的SQL学习活动。我每天发布1道SQL面试真题&#xff0c;从简单到困难&#xff0c;涵盖所有SQL知识点&#xff0c;我敢保证只要做完这100道题&#xff0c;不仅能轻松搞定面试&#xff0…...

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)

文章目录 一、检测相关(5篇)1.1 Contextual Affinity Distillation for Image Anomaly Detection1.2 Noise-to-Norm Reconstruction for Industrial Anomaly Detection and Localization1.3 MMNet: Multi-Collaboration and Multi-Supervision Network for Sequential Deepfake…...

直流运算放大器-----仪表放大器(三)

详见 模拟电子技术基础 6.4.1 电路图 计算公式 仿真 电流流向...

【Zookeeper】终端操作常用命令

文章目录 服务端常用命令客户端常用命令 zookeeper版本3.7.1 Zookeeper是一个开源的分布式协调服务。 Zookeeper是Apache软件基金会的一个项目&#xff0c;它提供了分布式应用程序协调的通用服务&#xff0c;如分布式同步、命名服务、集群维护等&#xff0c;以简化分布式应用协…...

leetcode 1110. 删点成林

给出二叉树的根节点 root&#xff0c;树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现&#xff0c;我们就把该节点从树上删去&#xff0c;最后得到一个森林&#xff08;一些不相交的树构成的集合&#xff09;。 返回森林中的每棵树。你可以按任意顺序组织答案…...

华为Harmony应用开发初探

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…...

电脑应用程序发生异常怎么办?

有时候我们打开电脑上面的某个软件时&#xff0c;会打不开&#xff0c;并且会弹出如下的错误提示“应用程序发生异常 未知的软件异常&#xff08;&#xff58;&#xff58;&#xff58;&#xff09;&#xff0c;位置为&#xff58;&#xff58;”。相信大多数的人在使用电脑的时…...

【JAVA】准备工作------Java开发环境搭建,IDEA的基础设置与操作

&#x1f349;内容专栏&#xff1a;【JAVA】 &#x1f349;本文脉络&#xff1a;JAVA的准备工作,IDEA的安装以及基础设置和快捷操作 &#x1f349;本文作者&#xff1a;Melon西西 &#x1f349;发布时间 &#xff1a;2023.7.11 目录 1. 概述JDK、JRE 2. 第一个程序——创建…...

操作系统真象还原——第5章 保护模式进阶,向内核迈进

第5章 保护模式进阶&#xff0c;向内核迈进 BIOS中断利用0x15子功能0xe802获取内存 汇编语言子功能的调用 填写调用前相关寄存器进行int中断调用获取返回结果输出到对应寄存器的值 80286 拥有24 位地址线&#xff0c;其寻址空间是16MB 。有一些ISA 只使用15MB&#xff0c;剩下…...

设计一款助听器可能需要用到以下音频算法

设计一款助听器可能需要用到以下音频算法&#xff1a; 1 响度补偿算法&#xff1a;助听器可能需要根据用户的听力损失情况调整不同频率范围内的增益&#xff0c;以提供个性化的听力补偿。这可以通过基于用户配置或自适应算法的频率响应调整来实现。 2 噪声抑制&#xff1a;用于…...

【端午节】用Vue3写粽子——从零开始

前言 在端午节即将到来之际&#xff0c;我们来一起写一个粽子组件来庆祝这个传统节日。 准备工作 首先&#xff0c;我们需要安装Vue3及其相关依赖&#xff0c;这里使用Vue CLI来创建项目。 # 安装Vue CLI npm install -g vue/cli # 创建Vue3项目 vue create zongzi接下来&a…...

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景

引言&#xff1a; 介绍当前的版本 今天我们要介绍的是aikit2023&#xff0c;aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉&#xff0c;定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台&#xff0c;可通过开发软件实现机械臂的控制&am…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...