寒假作业2汇总

这个作业属于哪个课程 班级链接
这个作业的要求在哪里 作业要求
这个作业的目标 给出规则集及输入数据包,输出相应数据包最佳匹配的规则
作业正文 如下
其他参考文献

第二次作业

1.代码:我的Github仓库

2.需要学习哪些内容

  • 复习git操作
  • C语言文件知识
  • IP地址,进制转换,CIDR
  • 计算机网络知识:五元组,规则集,数据集,规则匹配

3.困难

几乎没了解过计算机网络知识,看了很多遍作业内容才勉强理解一点意思,对作业感到无从下手。

本来想先学c++再做作业,后来感觉还是用c写方便一些。

在写代码的时候,每写一小部分就要运行一下试试,找找错误,规则集里端口的冒号两边有空格,没注意到且没有运行试试,到后面运行协议部分时出错才发现之前有问题。

在转换成二进制时,一开始想直接转换成一个二进制数,没把二进制以八位为一组分开,导致运行时溢出,才意识到问题并作修改。

4.步骤

(一)读取文件

用git把数据集和规则集弄到本地库,定义三个文件指针,用c读取文件,先分别用2个结构体存起来(源、目端口,源、目IP,协议)

数据集的IP十进制转成二进制,规则集的CIDR转成二进制的最小地址和最大地址,再存到结构体

(二)数据包匹配

暴力求解

(三)输出文件

结果写在另一文件res.txt

格式为 数据序号 : 匹配规则位置,如下图,以第一个规则集和第一个数据包为例

posted @ 2022-01-30 20:53  烟光残照  阅读(31)  评论(1编辑  收藏  举报