• 2019寒假训练营第三次作业


    学习视频课程

    学习笔记

    实验题

    所用的count_min_sketch

    热身题

    思路
    以ubuntu系统自带的gedit编辑器写好代码,然后打开终端用gcc的指令编译并运行代码。

    结果

    基本题

    了解新技术

    1.简单描述什么是sketch:
    sketch就是利用哈希值来估算数据流中任意元素频率的方法。要计算元素的频率,可以给所有元素都设置一个计数器,但面对大量的元素,这种方法会消耗大量的存储空间。而sketch利用hash函数计算相应的哈希值,并根据哈希值的范围开数组存储元素出现的次数,大大节约空间。

    2.描述Count-min sketch的算法过程:
    0.比sketch更准确,使用的空间也更多。

    1.选定d个hash函数,开一个 dxm 的二维整数数组作为哈希表。

    2.对于每个元素,分别使用d个hash函数计算相应的哈希值,然后在对应的位置上增1,二维数组中的各个整数称为sketch。

    3.要查询某个元素的频率时,只需要取出d个sketch, 返回最小的那一个(其实d个sketch都是该元素的近似频率,返回最小的那个以减小误差)

    实现新技术

    思路
    打开GitHub,搜索Count-min sketch,结合搜索引擎挑选代码,复制代码,运行代码。

    结果

    获取用户请求

    思路
    借助搜索引擎了解tcpdump,然后打开终端输入命令,得到请求文件。

    结果

    请求格式处理

    思路
    0.不懂题目的意思没有思路。

    1.决定加上过滤条件,重新抓取数据包重定向到请求文件中。

    2.编写程序,读取请求文件,找出符合条件的请求并按相应格式输出到新文件中。

    结果

    测试新技术

    思路
    1.首先大胆猜测题目应该跟上次是一样的意思,多个用户向bob发出请求,于是重新处理文件,每行保留一个ip地址和一个数据包的长度。

    2.先用程序大致跑一遍,知道应该设置多大的T。

    3.在程序中每次读取新的请求都判断是否超出阈值,超出则保存到黑名单中。

    4.输出黑名单。

    结果

    开放题

    理论部分:

    1.解释为什么 sketch 可以省空间:
    sketch借助hash把字符串都转换成了固定范围内的整型常量,作为数组的下标来索引该字符串,并不直接存储字符串,使得不定长的字符串更易查询与计数。
    而且sketch所用的数组是定长的一维数组,不会随处理量的增加而增加,因此节省空间。

    2.用流程图描述Count-min sketch的算法过程

    3.拿它和你改进后方法进行对比,分析优劣
    优:比改进后的方法更快更省空间,并且可以处理很长的字符串。
    劣:用的技术更高级,用到一堆没学过的,而且代码并不好找,还需要花时间理解。

    4.吐槽Count-min sketch
    方法本身挺好,没有什么想吐槽的

    实践部分:

    0.0.实践中使用【tcpdump -n -t -q -i any udp >> pakcet_capture.txt】过滤格式清楚的udp协议包,便于处理使用。
    0.1.udp包好少啊啊啊啊啊,要等好久,偶尔还会有ip6的包...。
    0.2.发现count_min_sketch用Devc++默认的cpp文件编译出错,c则正常。

    1.现阶段至少也要读取文件一次,查不到怎么把tcpdump的信息直接给程序使用,也找不到tcpdump直接过滤得到所需格式的指令。只能是把处理pakcet_capture.txt的程序和后面的找黑客程序拼在一起,在冥思苦想之下尽可能实现了手动实时处理(?)

    2.就是不停地抓包,然后手动多次启动程序(再实现自动启动程序不就自动实时处理了么??) ,随着抓到的包增加,黑客也会一个个浮出水面......如图所示

    我就是代码

    我就是图:

  • 相关阅读:
    网站常见的报错
    数据库的备份与还原
    纵向tab标签切换效果
    CSS3动画 transition 过渡,宽度由中间向两边发生过渡
    移入切换图片路径;移出再切回去
    动态修改手机号
    json基本介绍及使用
    py 封装 操作json 的方法
    通过htmltestrunner模块美化报告
    记:运行测试case遇到的问题!
  • 原文地址:https://www.cnblogs.com/Stareven233/p/10370285.html
Copyright © 2020-2023  润新知