项目简介
本项目是 2019 年网络原理课程实验采用的框架,旨在降低实验难度、实现代码复用以及方便测试。框架由硬件抽象层(HAL)和多个小实验两部分构成。HAL 提供不同后端,可使程序在不修改代码的情况下于不同平台运行;小实验针对路由器关键功能进行黑盒测试,能在真机调试前解决众多问题。
项目的主要特性和功能
- 硬件抽象层(HAL)
- 支持多平台,如 Linux、macOS、stdio、Xilinx 等后端,程序可在不同系统或硬件上运行。
- 简化设计,隐藏底层细节,从 IP 层开始暴露接口,处理 ARP 和以太网帧收发。
- 提供实用函数,如初始化、获取时间、查询 MAC 地址、收发 IP 报文等。
- 小实验测试
- 涵盖校验和计算、转发逻辑、路由表查询更新、RIP 协议解析封装等多方面功能。
- 通过文件输入输出进行黑盒测试,可快速发现问题。
- 实验验收机制
- 分阶段测试,包含独立完成题目、个人测试和组队测试,确保学生掌握不同层次的知识。
- 多种测试指标,检查连通性、转发方式、RIP 转发表和报文正确性等。
安装使用步骤
环境准备
若使用 Debian 系列发行版(如 Ubuntu、Raspbian),运行以下命令安装依赖:
bash
sudo apt install git make cmake python3 python3-pip libpcap-dev libreadline-dev libncurses-dev wireshark tshark iproute2 g++
pip3 install pyshark
复制仓库
shell
cd Router-Lab
git submodule update --init --recursive
使用 HAL
CMake 方式
bash
mkdir build
cd build
cmake.. -DBACKEND=Linux # 可根据需求选择不同后端
make router_hal
非 CMake 方式
将 router_hal.h
放入 Header Include Path 中,编译并链接对应后端的文件,同时在编译选项中添加 -DROUTER_BACKEND_<后端大写形式>
。
本地自测
在 Homework
目录下有多个题目,以 checksum
为例:
bash
pip install pyshark # 仅第一次,部分平台用 pip3 install pyshark
make
./checksum < data/checksum_input1.pcap # 手动运行查看效果
make grade # 运行评分脚本
在线测试
选课同学需将修改的函数文件提交到 OJ 进行测试,通过测试后可用于后续路由器实现。
实验验收
按实验的三个部分要求依次完成,包括在 OJ 提交题目、在树莓派上进行个人测试以及组队测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】