西电B测-计算机网络综合实验
西电B测-计算机网络综合实验
ensp安装踩坑
我这台电脑的环境比较混乱, virtualbox, vmware, docker什么的都有, 而且还是win11, 导致疯狂踩坑🤣, 整个安装大概花费3小时😇
第一个坑
virtualbox版本不支持, 我电脑上的virtualbox是7.0.x版本的, 与老版ensp不兼容, 需要降级到5.2.x版本, 最终选了5.2.44版本, 5.2.44版本的virtualbox又和win11不兼容, 需要将内核隔离关闭才能正常安装, 路径: 设置–>隐私与安全–>windows安全中心–>设备安全性–>内核隔离
第二个坑
重装之后启动路由器报错,错误代码41, 可以参考这篇博客, 操作之后再次启动路由器报错, 错误代码40, 接下来就是第三个坑
第三个坑
路由器启动报错40之后, 我照着官方文档一通操作, 发现依旧报错40😅, 然后决定全部卸载重装.
步骤:
控制面板卸载eNSP、VirtualBox、Wireshark、WinCap四个程序,如果存在USBCap、Npcap,也卸载
依次查看并删除:
1234 ...
数据安全检索
数据安全检索
大数据安全与隐私这门课的lab3,要求如下图:
方案:
• 使用了 pyope 库中的 OPE (Order Preserving Encryption) 对数据进行保序加密, 并将加密后的数据写入NE_encrypt.txt。
• 定义 decision_node 类来构建 KD 树。
• 实现了 travel_tree 函数,该函数能够在遍历 KD 树并进行近邻查询,并且还实现了距离计算函数 dist。
加密部分代码:
123456789101112131415161718192021222324252627282930313233343536import numpy as npfrom numpy import arrayfrom pyope.ope import OPE, ValueRange# 读入处理txt文件,返回二维数组,明文和密文def LoadTxtMethod(filename): cipher = OPE(b'long key' * 2, in_range=ValueRange(0, 10000000), ...
个人图床解决方案
个人图床解决方案
原先我的解决方案是github做图床,套一层Cloudflare的cdn来加速国内访问, 但国内访问仍然过慢, 特别是一些图很多的文章, 加载非常慢. 所以我想着改善一下, 在对比了一些解决方案之后, 我选择了PicGo+缤纷云搭建主图床, 部分图片放在 去不图床, 原先的方案作为备用方案.
我用去不图床存储常用固定图片, 像背景图这些, 单图10G的流量, PicGo+缤纷云存储文章内插图, 每月10G免费流量, 虽然去不图床和缤纷云都不是像阿里云, 腾讯云这样的大厂, 如果它们跑路的话, 我的备用方案可以立马顶上, 两分钟之内就可以做到替换完成, 所以说还是没有太大隐患
缤纷云
注册并实名之后就会拥有每月赠送的30G流量
创建桶
防盗链配置
添加子用户
Access Key和 Secret Key要记好,等会配置PicGo的时候要用到
picGo
下载picGo, 可以去看官方文档, 写得很详细, 我是从山东大学镜像下载的
由于缤纷云不是PicGo官方支持的云服务厂商, 所以得靠插件来实现, 由于支持s3 api, 所以我选择了Amazon s3插件 ...
网站性能检测与优化
网站性能检测与优化
性能检测
Lighthouse
Lighthouse 是一个网站性能测评工具, 它是 Google Chrome 推出的一个开源自动化工具,能够对 PWA 和网页多方面的效果指标进行评测,并给出最佳实践的建议以帮助开发者改进网站的质量。它的使用方法也非常简单,我们只需要提供一个要测评的网址,它将针对此页面运行一系列的测试,然后生成一个有关页面性能的报告。通过报告我们就可以知道需要采取哪些措施来改进应用的性能和体验。
在高版本(应该是 >= 60)的 Chrome 浏览器中,Lighthouse 已经直接集成到了调试工具 DevTools 中了,因此不需要进行任何安装或下载。按 F12 打开开发者工具,可以看到在 console、security 等选项后面有一个 Lighthouse (低版本的谷歌浏览器可能显示的是 Audits)选项,选择该选项,然后点击 Analyse page load 即可。
使用 Lighthouse 对网站进行测评后,我们会得到一份评分报告,它包含了性能(Performance),访问无障碍(Accessibility),最佳实 ...
Redis线程模型
Redis线程模型和IO多路复用
Redis是单线程的吗?
redis6.0后,全面支持多线程。redis单线程指的是 接收请求、解析请求、进行数据读写操作、返回数据给客户端这个过程是由一个线程来完成的以及Redis的网络IO是由一个线程来完成的。所以我们称redis为单线程。
但是redis服务在启动的时候,会启动后台线程,常见的有两个
后台刷盘线程:当我们配置AOF策略为everysec时,每隔一秒,由后台线程完成刷盘操作
后台释放内存线程:redis 提供unlink命令,异步释放内存,特别是大key
之所以有后台线程,只为了不让主线程去执行这些操作,避免阻塞主线程,无法响应请求。
Redis为什么采用单线程?
Redis 的大部分操作都在内存中完成,并且采用了高效的数据结构,因此 Redis 瓶颈可能是机器的内存或者网络带宽,而并非 CPU,所以 Redis 核心网络模型使用单线程并没有什么问题,而且单线程避免了多线程之间并发竞争问题,省去了多线程切换带来的时间和性能上的开销,也不会导致死锁问题。
Redis 6.0引入多线程后,会产生并发安全问题吗?
不会,引入的多线程只 ...
Redis持久化(AOF|RDB)
Redis持久化(AOF|RDB)
AOF
AOF是什么?
AOF全称是append only file, 即只追加文件。
AOF持久化是通过保存Redis服务器执行的写命令来记录数据库状态的。
AOF默认是不开启的,需要在redis.conf文件中配置:
12appendonly yesappendfilename "appendonly.aof"
AOF持久化配置项说明:
appendonly:是否开启AOF持久化
appendfilename:持久化文件名
redis处理写命令的时,会采取先写内存数据,再记录AOF日志的方式,这样做有两个好处:
减少额外检查开销: 只有内存数据被修改成功后才会写AOF日志,保证了日志都是可执行且正确的
不会阻塞当前的写操作
风险
如果命令执行完成,写日志之前宕机了,会丢失数据。
可能会阻塞下一条写命令的执行: 写操作和记录日志都是主进程(主进程中的redis_aof_write_thread线程),如果在刷盘时,服务器I/O压力过大,导致写硬盘速度很慢,就会阻塞后续的写命令
写AOF日志的过程
redis在执行完一个写 ...




