跳转至

课程要求

课程实验分为如下两个部分:编程作业和真机实验。总代码量约 400 行。

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

真机实验:校历第 12 周 - 第 16 周周日(2026 年 1 月 4 日)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 上看到。

真机实验

第二部分,你需要在以下两个选项中,选择一个完成:

  1. 实现 OSPF 协议的路由器(推荐)
  2. 实现 RIPng 协议的路由器

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

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

实现 OSPF 协议路由器(推荐)

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

实现 RIPng 协议路由器

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


最后更新: 2025年9月15日
作者:Jiajie Chen (66.15%), Wende Tan (1.54%), Haixuan Tong (23.08%), Yutong Xie (9.23%)

评论