选课类别:计划内与自由选修 | 教学类型:实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业选修 | 学分:1.0 |
网络系统实验是计算机专业网络与信息安全方向的综合实验课程,通过让学生自己动手实现一个真实可用的TCP协议软件和IP路由转发软件,加强学生对TCP/IP核心协议的理解,并培养学生理论联系实际的能力。本实验课程包含循序渐进的7个实验项目,要求通过补充C++函数、类等构建一个完整的TCP实现及一个简单的IP路由器,能够实现端到端可靠数据传输,并满足一定的性能要求。
课程的实验框架来自 Stanford 的 CS144 课程,具体内容可以参考 Stanford 这门课的主页 CS 144: Introduction to Computer Networking ,本门课程的框架和流程都和链接里给出的资料差不多。
实验方面:
CS144 的实验框架设计的还是蛮精巧的,有许多眼前一亮的设计,用到的技术也比较新颖,完成这个试验后可以收获不少 C++ 和 TCP 相关的知识。
不过毕竟是实验课,因此四十个学时只有一学分,相对内容来说确实还是偏少了。老师说之后可能加入一些理论的内容,将课程提高到两学分,同时降低实验的工作量,这样的话实验的难度和学分会更匹配一些。对 C++ 和 linux 有一定了解,想要找个 project 练练手的同学可以来选这门课。
这门课是今年第一次开,基本照搬了斯坦福cs144的实验,大概就是在一个复杂框架中用c++17实现tcp协议,会涉及到gdb、bash script、Makefile、tshark和tun tap等工具的使用(后两个工具我到结课也没搞明白)。
内容还是挺难的,估计7个实验至少也要50个小时以上(其实我第五个实验就做了30个小时)。感觉内容确实不止1个学分吧,怎么样也比数电实验折磨多了。
不过毕竟是第一次开,老师也说了之后会降低实验难度和量。抛开做实验过程中的折磨不谈,收获还是不少的,至少对tcp的理解深入了很多。
另外,老师和助教都很好,有问题能及时反馈,下一次开的课应该还是比较推荐选的。
第一堂课还能大致坐满教室,没过多久就只剩4个人了(乐)
实验难度其实还好吧,比os可是舒服了不是一星半点(os一旦有bug要D就直接开始坐牢,被迫面向正解debug)。个人感觉是如果你编译实验没有感到很困难的话就可以选。
最大的问题就是只有一个学分,妮可特有的轻视实验。然后除非你是天才手打一遍过不然要花的时间肯定是超过40h的,不过嘛,都3春了,时间完全有,天天打游戏完全不耽误(
需要对c++调试比较熟练,因为本来大量时间都是在debug和和面上(特判,面向测试编程)
最好看CS144的英文文档(平台上能下),老师写的ppt确实略微那个
对自己c++ coding有自信的话还是很推荐选的,跟完后确实对TCP协议等计网知识确实会有更深的理解。给分方面不需要担心,1个学分,个位数的人,大概率突破极限。我92