summaryrefslogtreecommitdiff
path: root/README.md
blob: 99628025a6285c89fd84062006b2522fc67660f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
1.用三个寄存器实现了一个以三个hash函数为基础的Bloom Filter,通过布隆过滤器判断数据包是否在一个集合中:
    如果是SYN数据包,会计算hash并将记录插入布隆过滤器的相应位置;
    如果是其他数据包,则计算hash读取布隆过滤器相应位置,全为1表示该数据包存在集合中,可以继续匹配ipv4_host表,否则不能继续向下执行匹配。

2./pkt文件夹中:
    send_syn.py构造一个SYN数据包并发出,bloom_filter检测到SYN数据包会进行插入操作,给布隆过滤器的相应位置置位。
    send_exist.py构造一个五元组和send_syn.py中一样的数据包,检测是否可以命中布隆过滤器,命中就可以继续匹配ipv4_host table。
    send_not_exist.py构造一个和上面不同五元组的数据包,不会命中布隆过滤器(也有概率会命中,就是误报)

3./ptf文件夹中是ptf集成测试文件,有三个class:
    insertBloomF: 构造SYN数据包,在布隆过滤器相应位置置位
    hitBloomF: 和insertBloomF中五元组一样的数据包,可以命中布隆过滤器,可以进行ipv4_host table的匹配
    NhitBloomF: 五元组不同于上面的数据包,不能命中布隆过滤器,不能匹配ipv4_host