【隧道篇 / WAN优化】(7.4) ❀ 03. WAN优化的原理 ❀ FortiGate 防火墙
【简介】相信对WAN优化感兴趣的人都会有疑问,WAN优化真的有作用吗?如果真的有作用,那是根据什么原理呢?让我们来更深入的了解一下。
客户端和服务器端
其实很多人在一开始看到WAN优化这个词,就自然的以为上网速度太慢,WAN优化的作用是加快上网速度。直到看到上一篇文章,才知道FortiGate防火墙的WAN优化功能,是加快两台防火墙之间的访问速度。
和集中应用程序的使用方法一样,互联网两端的FortiGate防火墙也分为客户端和服务器端。客户端和服务器角色与会话的启动方式有关。任何为WAN优化配置的FortiGate设备都可以同时是客户端和服务器端,具体取决于流量的方向。

不管当前FortiGate防火墙是作为服务器还是客户端,首先都必须有一个主机ID,主机ID可以更改。

要和对端连接,需要新建WAN加速对,输入对方主机ID以及对方WAN口的公网IP。因此我们可以看到,要想成功的使用WAN优化功能,除了两边防火墙都自带硬盘之外,还必须有可以远程的公网IP。
WAN优化要求每个对等体进行以下配置:
● 对等体必须具有唯一的主机ID。
● 除非使用身份验证组,否则对等体使用主机ID值相互身份验证。
● 不要将本地主机ID保留在默认值。
● 对等体必须知道它可以启动WAN优化隧道的所有其他对等体的主机ID和IP地址。如果你使用接受所有对等体的身份验证组,则不适用。
身份验证
熟悉IPsec VPN配置的就知道,两边防火墙配置时除了输入对方的公网IP,还需要选择验证方式,通常是选择预共享密钥。

客户端FortiGate防火墙启动WAN优化会话,服务器端FortiGate防火墙响应会话请求。在此过程中,WAN优化对等体相互识别并选择进行身份验证。除非隧道是安全隧道,否则身份验证组是可选的。你需要添加身份验证组,以支持WAN优化对等体之间的安全隧道。
当客户端FortiGate防火墙试图与服务器FortiGate防火墙启动WAN优化隧道时,隧道请求包括以下信息:
● 客户端主机ID。
● 身份验证组的名称,如果包含在启动隧道的规则中。
● 如果使用身份验证组,它指定的身份验证方法(预共享密钥或证书)。
● 隧道的类型(安全与否)。
如果隧道请求不包括身份验证组,则身份验证将基于隧道请求中的客户端主机ID。如果隧道请求包含身份验证组,则身份验证将基于该组的设置。
隧道
所有优化流量通过WAN优化隧道在FortiGate防火墙之间通过。隧道中的流量可以纯文本发送或加密发送。纯文本和加密隧道都使用TCP目标端口7810。
你可以将WAN优化配置文件配置为使用SSL安全隧道,使用AES-128bit-CBC SSL加密WAN优化隧道中的流量。WAN优化使用FortiASIC加速来加速安全隧道的SSL解密和加密。

要使用安全隧道,你必须添加身份验证组,并在WAN优化配置文件中启用SSL安全隧道。身份验证组的接受对等体设置不会影响安全隧道。
协议优化
协议优化技术优化了整个WAN的带宽使用。这些技术可以通过减少通信协议所需的流量来提高跨WAN优化隧道的通信效率。你可以将协议优化应用于CIFS、FTP、HTTP、MAPI和一般TCP会话。你可以将通用TCP优化应用于MAPI会话。

例如,CIFS提供文件访问、记录锁定、读/写权限、更改通知、服务器名称解析、请求批处理和服务器身份验证。CIFS需要许多后台事务才能成功传输单个文件。这通常在局域网中不是问题。然而,在整个广域网中,延迟和带宽的减少可能会降低CIFS的性能。
当你在WAN优化配置文件中选择CIFS协议时,WAN优化隧道两端的FortiGate防火墙使用多种技术来减少CIFS流量在广域网上发生的后台事务数量。
如果策略接受一系列不同类型的流量,你可以将协议设置为TCP,以将一般优化技术应用于TCP流量。然而,应用这种TCP优化并不像对特定类型的流量应用更多特定于协议的优化那样有效。TCP协议优化使用TCP SACK支持、TCP窗口缩放和窗口大小调整以及TCP连接池等技术来消除TCP瓶颈。
缓存
字节缓存将大单位的应用程序数据(例如,从网页下载的文件)分解为小数据块,用该块的散列标记每个数据块,并将这些块及其散列存储在数据库中。数据库存储在WAN优化存储设备上。然后,FortiGate防火墙不是通过WAN隧道发送实际数据,而是发送散列。隧道另一端的FortiGate防火墙接收散列,并将其与其本地字节缓存数据库中的散列进行比较。如果任何散列匹配,则该数据不必通过WAN优化隧道传输。任何不匹配的散列的数据都会通过隧道传输,并添加到该字节缓存数据库中。然后,应用程序数据单元(正在下载的文件)被重新组装并发送到其目的地。
存储的字节缓存不是特定于应用程序的。电子邮件中文件的字节缓存可用于优化从网页下载相同文件或类似文件。
结果是通过WAN传输的数据较少。最初,在建立足够大的字节缓存数据库之前,字节缓存可能会降低性能。

要启用字节缓存,请在WAN优化配置文件中选择字节缓存。
相关文章:
【隧道篇 / WAN优化】(7.4) ❀ 03. WAN优化的原理 ❀ FortiGate 防火墙
【简介】相信对WAN优化感兴趣的人都会有疑问,WAN优化真的有作用吗?如果真的有作用,那是根据什么原理呢?让我们来更深入的了解一下。 客户端和服务器端 其实很多人在一开始看到WAN优化这个词,就自然的以为上网速度太慢&…...
网络爬虫概述与原理
网络爬虫概述与原理 网络爬虫简介狭义上理解功能上理解常见用途总结 网络爬虫分类通用网络爬虫聚焦网络爬虫增量网络爬虫深度网络爬虫 网络爬虫流程网络爬虫采集策略深度有限搜索策略广度优先搜索策略 网络爬虫简介 通过有效地获取网络资源的方式,便是网络爬虫。网…...
可视化实验三 Matplotlib库绘图及时变数据可视化
1.1 任务一 1.1.1 恢复默认配置 #绘图风格,恢复默认配置 plt.rcParams.update(plt.rcParamsDefault)#恢复默认配置 或者 plt.rcdefaults() 1.1.2 汉字和负号的设置 import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"]"SimH…...
开启多线程下变量共享与私有问题
开启多线程下变量共享与私有问题 🌵ThreadLocal和Atomic是Java中用于多线程编程的两个重要工具。 ThreadLocal是一个线程局部变量,它为每个线程提供了独立的变量副本,确保每个线程都可以访问自己的变量副本而不会影响其他线程的变量。在多线…...
Qt模型视图代理之QTableView应用的简单介绍
往期回顾 Qt绘图与图形视图之绘制带三角形箭头的窗口的简单介绍-CSDN博客 Qt绘图与图形视图之Graphics View坐标系的简单介绍-CSDN博客 Qt模型视图代理之MVD(模型-视图-代理)概念的简单介绍-CSDN博客 Qt模型视图代理之QTableView应用的简单介绍 一、最终效果 二、设计思路 这里…...
第七届精武杯部分wp
第一部分:计算机和手机取证 1.请综合分析计算机和手机检材,计算机最近一次登录的账户名是 答案:admin 创建虚拟机时直接给出了用户名 2. 请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是 答案:…...
3.2Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3框架-企业级应用- Vuex
Vuex简介 Vuex概述 Vuex是一个专门为Vue.js应用程序开发的状态管理模式, 它采用集中式存储管理所有组件的公共状态, 并以相应的规 则保证状态以一种可预测的方式发生变化. 试想这样的场景, 比如一个Vue的根实例下面有一个根组件名为App.vue, 它下面有两个子组件A.vue和B.vu…...
整合 Java, Python 和 Scrapy 爬虫以传递和使用参数
这篇博客将详细说明如何从 Java 应用程序调用一个 Python 脚本,并在此过程中传递参数给一个 Scrapy 爬虫。最终目标是让 Java 控制爬虫的行为,如爬取数量和特定的运行参数。 一、Scrapy 爬虫的修改 首先,我们需要确保 Scrapy 爬虫能接收从命…...
Android 蓝牙实战——蓝牙音乐播放进度(二十)
对于蓝牙音乐的开发来说,播放进度是一个比较重要的数据参数,这里我们就来分析一下蓝牙音乐播放进度的相关回调。 一、回调流程 1、AvrcpControllerService 源码位置:/packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java /…...
SQL注入实例(sqli-labs/less-1)
初始网页 从网页可知传递的参数名为 id,并且为数字类型 1、得知数据表有多少列 1.1 使用联合查询查找列数(效率低) http://localhost/sqli-labs-master/Less-1/?id1 union select 1,2 -- 1.2 使用order by查找列数(效率高&…...
Python中tkinter编程入门3
在使用tkinter创建了窗口之后,可以将一些控件“放置”到窗口中。这些控件包括标签、按键以及输入框等。 1 在窗口中“放置”标签 在窗口中“放置”标签主要有两个步骤,一是创建标签控件,二是将创建好的标签“放置”到窗口上。 1.1 创建标签…...
XMind 2023 v23.05.2660软件安装教程(附软件下载地址)
软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! XMind 2023 v23.05.2660被视为顶尖思维导图软件,其界面简洁清爽,功能布局直观简单,摒弃繁复不实。尽管体积小巧&a…...
docker compose kafka集群部署
kafka集群部署 目录 部署zookeeper准备工作2、部署kafka准备工作3、编辑docker-compose.yml文件4、启动服务5、测试kafka6、web监控管理 部署zookeeper准备工作 mkdir data/zookeeper-{1,2,3}/{data,datalog,logs,conf} -p cat >data/zookeeper-1/conf/zoo.cfg<<EOF…...
最新版在线客服系统源码
源码介绍 首发最新在线客服系统源码,优化更好并且重构源码布局UI 性能不吃cpu并发快,普通1H2G都能带动最新版只要是服务器都能带动 搭建即可使用,操作简单,易懂 修复了老版本bug 内附有搭建教程 gofly.v1kf.com 运行环境 Nginx 1.20 MySQL 5.7 演示截图...
【比邻智选】MR880A模组
🚀高性价比,5G/4G双模,稳定可靠 🌐功能丰富,5G特性一应俱全 🧩多封装兼容,适配性强,灵活升级智能设备...
超大文件去除重复数据
背景 一个超大200万行文件 第一列是文件名 第二列是文本 第一列有重复的文件名 如何删除重复的文件名和对应的文本 awk ‘!seen[$1]’ 使用一些命令行工具来处理大文件,如awk、sed、grep等。 使用awk命令来去除重复行: bash awk !seen[$1] your_file.…...
ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习
ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习 1、 Flyer[3].step(1) Flyer[7].step(2) Flyer[11].step(1) for i in range(4):Flyer[i * 2].step(1) Flyer[8].step(3)for i in range(3):Dev.turnRight()Dev.step(-5)2、 for i in range(5):Flyer[i5].step(Flyer[…...
苹果电脑怎么安装crossover 如何在Mac系统中安装CrossOver CrossOver Mac软件安装说明
很多Mac的新用户在使用电脑的过程中,常常会遇到很多应用软件不兼容的情况。加上自己以前一直都是用Windows系统,总觉得Mac系统用得很难上手。 其实,用户可以在Mac上安装CrossOver,它支持用户在Mac上运行Windows软件,例…...
C++学习————第十天(string的基本使用)
1、string 对象类的常见构造 (constructor)函数名称 功能说明: string() (重点) 构造空的string类对象,即空字符串 string(const char* s) (重点)…...
华为OD介绍
概念 华为OD是华为提出的一种新的用工方式,其全称是Outsourcing Dispacth,也可以简写为ODP,是华为和北京外企德科人力资源服务上海有限公司联合招聘的简称。华为OD岗位属于华为外包员工的一种,仅限于软件研发类岗位,类…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
