本次作业需要学习内容

|这个作业属于哪个课程|[2022面向对象程序设计](https://edu.cnblogs.com/campus/fzu/2022OOP)|

|这个作业要求在哪|[第二次寒假作业](https://edu.cnblogs.com/campus/fzu/2022OOP/homework/12432)|

|这个作业的目标|分析罗列完成本次作业需要学习哪些内容|

|作业正文|2022面向对象程序设计寒假作业2(1)|

|其他参考文献|... |

学会相关概念

1.五元组:源IP地址,源端口,目的IP地址,目的端口,和传输层协议这五个量组成的一个集合。 例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。

2.规则集:规则集是匹配规则的集合,以五元组的形式给出范围,如178.139.217.251/32 126.0.44.183/32 0 : 65535 1526 : 1526 0x06/0xFF 0x1000/0x1000,其中178.139.217.251/32表示原IP地址,126.0.44.183/32表示目的IP地址,/32的意思是IP地址是32位的,0 : 65535规定源端口范围,表示从0到65535端口都可匹配,目的端口1526 : 1526同理,0x06/0xFF表示协议号,若0x06后是0xFF则表示只有0x06可匹配,若0x06/0x00则表示任意协议都可匹配,0x1000/0x1000表示规则优先级。

3.数据集:数据集是数据包的集合,同样以五元组的形式给出数据包的精确五元组信息,如2995509645 269990131 0 0 255,其中 2995509645 269990131分别是源IP和目的IP,与规则集的IP地址表示不同,规则集是点分十进制表示,而数据包IP是十进制表示,0 0是源、目的端口,255是协议号。

4.规则匹配:对于一个数据包P,当它每个字段的内容(源/目的IP,端口号,协议号)都在规则集中的某条规则的范围内时则匹配,一个数据包可能匹配多个规则,其中优先级最高的规则称作数据包的最佳匹配。

任务内容

1.提供规则集(dataacl1.1)和数据集(dataacl1.n_trace),输出数据集中数据包所最佳匹配的规则位置(即匹配到第几条规则就输出规则编号,从0开始,若匹配不到输出-1,输出格式”数据包信息 匹配规则位置“);

2.数据集和规则集用文件的形式读入,匹配结果以文件的形式输出;

3.通过一个main.c编译的main.exe来执行./main <规则集文件名> <数据集文件名> <可能存在的预加载文件>(例 ./main acl1k acl1k_trace1) 这个命令进行匹配操作,输出匹配结果储存在文件res.txt中;

4.将每个功能模块写成函数(模块化),可以尝试学习运用C++中类的相关知识,提倡将每个模块分成不同的文件,每个函数的功能要明确;

需要掌握的知识

1.熟练掌握git相关知识。
2.学习c++相关知识,运用自顶向下知识。
3.学会匹配规则,正确打出代码。

posted @ 2022-01-23 20:43  田hy  阅读(36)  评论(0编辑  收藏  举报