跳转至

课程要求

课程实验分为如下两个部分:编程作业和真机实验。总代码量约 400 行。完成实验后需要完成验收文档与视频制作。

编程作业:校历第 6 周 - 第 12 周周日(2026 年 12 月 6 日)22:00:00

真机实验:校历第 12 周 - 第 15 周周日(2026 年 12 月 27 日)22:00:00

验收视频:校历第 15 周 - 第 16 周周日(2027 年 1 月 3 日)22:00:00

以上截止时间都以东八区(UTC+8)为准。在截止时间之前,你需要提交代码、完成评测并且标记最终提交。如果不标记最终提交,则以截止时间前最后一次评测结果为准。如果未能在截止时间前完成,可以在实验平台上指定补交的评测结果,但会扣除分数。扣除后的分数计算规则如下:

\[ S' = S \times \min(0.8, 0.95^D) \]

其中 \(S\) 是作业原始得分, \(D\) 是向上取整的迟交天数(即 deadline 后 24 小时内都记为迟交一天)。

编程作业

目前,一共包括四个编程实验如下(总代码量约 220 行):

  • eui64:基于 EUI64 构造 IPv6 Link Local 地址,代码量约 10 行
  • internet-checksum:进行 UDP 和 ICMPv6 校验和的检验和计算,代码量约 80 行
  • lookup:路由表的查询和更新,代码量约 60 行
  • protocol-ospf/protocol:OSPF/RIPng 协议的处理,代码量约 70 行

你需要在 TANLabs 上登录,并且在网站上创建属于你的作业 GitLab 仓库。你需要使用 Git 往你的作业仓库中提交你的代码,然后在 TANLabs 查看评测结果。评测的流程和要求详见 TANLabs 网站上的说明。

编程作业占实验的 20% 分数。每个实验占四分之一的编程作业分数,每个实验的所有数据点均分分数。你需要标注一次提交作为最终提交来计算最终成绩,这一部分的分数可以在 TANLabs 上看到。

真机实验

第二部分,你需要完成:实现 OSPF 协议的路由器

真机实验占实验的 60% 分数。你需要在 TANLabs 上标记你的最终评测,每次评测会显示各项评测的原始结果,但不提供分数。

和编程作业一样,你也需要把代码提交到 GitLab 上,然后在 TANLabs 上进行远程的树莓派评测。

你需要基于编程作业的代码,修改 Homework/ospf/main.cpp,实现一个支持 OSPF 协议的路由器。总代码量约 125 行。

验收视频

在完成真机实验后,你需要制作文档(建议通过 PPT 形式呈现)并录制视频以供验收,视频要求 真人出镜并配音 。

验收内容占实验的 20% 分数。由助教审阅视频与文档并给分。

视频时长应控制在 5 分钟以内,并制作正文 5 页或以上的 PPT。视频中你需要分段讲清楚本次实验新增代码及其大致作用,建议按照以下问题组织:

  • 本次实验使用了 OSPF 的哪些报文?分别有什么作用?报文格式是什么?在代码中定义在哪里?
  • 路由器之间如何进行邻居发现?路由器之间如何交换路由信息?
  • 获取路由信息后,如何构建路由表?使用什么算法?时间复杂度是什么?

其中 PPT 中应包含必要的代码片段,但不应进行简单代码堆叠。PPT 严禁使用 AI 直接生成,如有明显 AI 痕迹,会酌情进行扣分。

本验收旨在督促大家重新审视此次作业,从而更好理解路由协议的工作原理。此处分数主要用于评估对实验的理解情况,以减弱 AI 过度使用的负面影响。文档无需过度美观,但应条理清晰且简明。视频无需过度剪辑,但应口齿清晰且逻辑流畅。你也可以借此机会锻炼未来科研中的一个重要能力:演示文档制作与汇报。

作者:Jiajie Chen (53.85%), PengHanyi (32.05%), Haixuan Tong (7.69%), Yutong Xie (5.13%), Wende Tan (1.28%)

评论