网络系统实验(徐伟) 2024春 2023春 2022春  课程号:01117201
2024春 2023春 2022春  课程号:01117201
8.0(5人评价)
  • 课程难度:困难
  • 作业多少:很多
  • 给分好坏:超好
  • 收获大小:很多
选课类别:计划内与自由选修 教学类型:实验课
课程类别:本科计划内课程 开课单位:计算机科学与技术系
课程层次:专业选修   学分:1.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介 最后更新:

网络系统实验是计算机专业网络与信息安全方向的综合实验课程,通过让学生自己动手实现一个真实可用的TCP协议软件和IP路由转发软件,加强学生对TCP/IP核心协议的理解,并培养学生理论联系实际的能力。本实验课程包含循序渐进的7个实验项目,要求通过补充C++函数、类等构建一个完整的TCP实现及一个简单的IP路由器,能够实现端到端可靠数据传输,并满足一定的性能要求。

排序 学期

评分 评分 5条点评

When 2022春
  • 课程难度:困难
  • 作业多少:很多
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:困难
  • 作业:很多
  • 给分:超好
  • 收获:很多

课程的实验框架来自 Stanford 的 CS144 课程,具体内容可以参考 Stanford 这门课的主页 CS 144: Introduction to Computer Networking ,本门课程的框架和流程都和链接里给出的资料差不多。

实验方面:

  • 实验流程:阅读文档->根据实验框架完成函数->通过测试->完成实验报告,实验代码需要提交到远程虚拟机评测,有本地的测试脚本供 debug,想要提前了解框架的可以去 github 上随便 fork 一个实现
  • 实验五:需要根据之前实现的 tcp 发送器和接收器实现完整的 tcp 状态机,CS144 的文档解释的比较详细,老师也有额外资料。但是实验五的测试十分全面,而且除了人工设计好的样例外,还会有与 linux 内核通过 tcp 协议通信的测试,这部分测试 debug 较为困难,基本只能靠抓包,而且之前代码中存在 bug 可能会影响到这一阶段的测试。同时有很多人工设计的样例检测 tcp 实现的可靠性,例如是否能够正确响应不同阶段的 RST 等,这些情况基本只能等测试出错了然后阅读测试脚本 debug。因此这个实验较为棘手,建议尽早开始做准备。
  • 其他实验:一般在正确完成文档的要求后就可以通过
  • 实验报告:实验文档中会给出几个问题,和实验的细节有关,实验报告只需要写这些问题的答案就好

CS144 的实验框架设计的还是蛮精巧的,有许多眼前一亮的设计,用到的技术也比较新颖,完成这个试验后可以收获不少 C++ 和 TCP 相关的知识。

不过毕竟是实验课,因此四十个学时只有一学分,相对内容来说确实还是偏少了。老师说之后可能加入一些理论的内容,将课程提高到两学分,同时降低实验的工作量,这样的话实验的难度和学分会更匹配一些。对 C++ 和 linux 有一定了解,想要找个 project 练练手的同学可以来选这门课。

(最后修改于 7 0 复制链接
  • 课程难度:困难
  • 作业多少:很多
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:困难
  • 作业:很多
  • 给分:超好
  • 收获:很多

这门课是今年第一次开,基本照搬了斯坦福cs144的实验,大概就是在一个复杂框架中用c++17实现tcp协议,会涉及到gdb、bash script、Makefile、tshark和tun tap等工具的使用(后两个工具我到结课也没搞明白)。

内容还是挺难的,估计7个实验至少也要50个小时以上(其实我第五个实验就做了30个小时)。感觉内容确实不止1个学分吧,怎么样也比数电实验折磨多了。

不过毕竟是第一次开,老师也说了之后会降低实验难度和量。抛开做实验过程中的折磨不谈,收获还是不少的,至少对tcp的理解深入了很多。

另外,老师和助教都很好,有问题能及时反馈,下一次开的课应该还是比较推荐选的。

(最后修改于 4 0 复制链接
lrcno6 2024春
  • 课程难度:中等
  • 作业多少:很多
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:很多
  • 给分:超好
  • 收获:很多

第一堂课还能大致坐满教室,没过多久就只剩4个人了(乐)

实验难度其实还好吧,比os可是舒服了不是一星半点(os一旦有bug要D就直接开始坐牢,被迫面向正解debug)。个人感觉是如果你编译实验没有感到很困难的话就可以选。

最大的问题就是只有一个学分,妮可特有的轻视实验。然后除非你是天才手打一遍过不然要花的时间肯定是超过40h的,不过嘛,都3春了,时间完全有,天天打游戏完全不耽误(

需要对c++调试比较熟练,因为本来大量时间都是在debug和和面上(特判,面向测试编程)

最好看CS144的英文文档(平台上能下),老师写的ppt确实略微那个

对自己c++ coding有自信的话还是很推荐选的,跟完后确实对TCP协议等计网知识确实会有更深的理解。给分方面不需要担心,1个学分,个位数的人,大概率突破极限。我92

1 0 复制链接
fff11 2022春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:很多

实验很硬核,如果自己做,很多C++17的知识点需要学习和使用。计算机网络课程教学的TCP太简单了,实际实验才发现有这么多问题需要考虑。唯一缺点是讲述方面再详细点,就更好了。

因为该课程是斯坦福大学cs144课程实验,网上可以找到该课程的实验全部代码,如果只是混学分,直接拷贝,也能跑通全部实验。所以如果自己从头做,作业有一定难度,如果是借鉴网络代码,大家自己考虑。。。

(最后修改于 1 0 复制链接

徐伟

教师主页: 戳这里

其他老师的「网络系统实验」课

张信明 8.0 (7) 2021春 2020春...
未知 2017春

徐伟老师的其他课

程序调试技术 8.5 (2) 2023秋 2022秋