littlebot
Published on 2025-04-15 / 1 Visits
0

【源码】基于 C++ 编程语言的路由器实验框架

项目简介

本项目是 2019 年网络原理课程实验采用的框架,旨在降低实验难度、实现代码复用以及方便测试。框架由硬件抽象层(HAL)和多个小实验两部分构成。HAL 提供不同后端,可使程序在不修改代码的情况下于不同平台运行;小实验针对路由器关键功能进行黑盒测试,能在真机调试前解决众多问题。

项目的主要特性和功能

  1. 硬件抽象层(HAL)
    • 支持多平台,如 Linux、macOS、stdio、Xilinx 等后端,程序可在不同系统或硬件上运行。
    • 简化设计,隐藏底层细节,从 IP 层开始暴露接口,处理 ARP 和以太网帧收发。
    • 提供实用函数,如初始化、获取时间、查询 MAC 地址、收发 IP 报文等。
  2. 小实验测试
    • 涵盖校验和计算、转发逻辑、路由表查询更新、RIP 协议解析封装等多方面功能。
    • 通过文件输入输出进行黑盒测试,可快速发现问题。
  3. 实验验收机制
    • 分阶段测试,包含独立完成题目、个人测试和组队测试,确保学生掌握不同层次的知识。
    • 多种测试指标,检查连通性、转发方式、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】