选课类别:基础 | 教学类型:理论课 |
课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
课程层次:硕士 | 学分:3.0 |
本课程的教学目标是在学生已经学过的计算机网络的基本理论知识以及网络的基本应用基础上,跟踪计算机网络理论和技术发展的最新动向,讲授计算机网络的新概念、新技术、新发展和新应用,使学生掌握网络的最新理论和技术,始终把握网络信息时代的脉搏。通过具体网络实践,解决实际问题,掌握网络科研和工程的基本技能,以适应现代信息化社会对计算机网络的要求,为进一步利用计算机网络资源、从事相关的学习和研究打下基础。课程紧跟计算机网络的发展前沿,重点介绍网络体系结构、网络核心机制、网络关键技术和网络系统方向具有代表性的前沿成果,具体方向包括数据中心网络、新型网络协议、软件定义网络/网络功能虚拟化、新一代互联网和未来网络等,并指导学生使用ns-3、mininet、Pyretic、ONOS等先进的工具环境,开展面向新型网络的实验实践。本课程强调实际动手能力的培养。
田野老师的《高级计算机网络》课程主要通过带读经典论文的方式进行教学,讲解了近二三十年来的关键论文,内容覆盖广泛,从Internet历史、P2P、TCP拥塞控制、到广域网(BGP)和数据中心网络等。课程紧跟前沿,许多论文是近年顶级会议如SIGCOMM和NSDI上的成果。不少学生反映,老师讲解深入浅出,能够学到很多实用知识,即使那些没有网络背景的学生也能跟上并拓展视野。
课程全程无小作业,主要评估方式包括课程论文和实验。实验多使用mininet和NS-3进行,学生反映配置环境和完成实验需要一定时间,但田老师会详细指导基本操作。实验内容具有挑战性,但同学们可以通过“借鉴”前辈的项目提升效率。论文方面,学生需撰写综述论文,至少参考30篇文献,可以单独完成或小组合作,老师会提供详细的写作指导。
期末考试为开卷,主要考察平时讲授的论文内容,考试内容基本上都包含在教师提供的PPT内。田老师会在最后一节课明确划定重点,考生需重点复习这些内容。题目一般包括计算题和概念解释,涉及经典网络拓扑如Fat tree和现代网络算法如Elastic sketch、SP-PIFO等。考试内容难度适中,考前集中复习即可通过。
评分相对友好,学生表示认真完成课程要求即可获得高分,很多人最终得分在90分及以上。部分学生点评中提到,这门课总体给分很好,即使是不相关方向的学生也能够取得满意的成绩。
总之,《高级计算机网络》课程内容丰富,教学质量高,对学生要求不苛刻,非常推荐给对该领域有兴趣的学生选修。
说下22年春的期末考题,趁着刚考完还记得
1. fat tree, switch标号以及计算路径(经典题目了)
2. 解释BBR图中三个区域RTT和deliver rate的变化情况
3. 计算MPTCP,Couple每个链路上的流量
4. 解释PortLand中提出的PMAC
5. OpenFlow原题,位于哪一层?基本操作?等
6. Elastic sketch 中对sketch的更新(heavy part 和light part)
考前老师会划考试范围,给个期末考试的PPT,上面六道题除了第五题往年原题外,全都在期末考试PPT中有强调。
上课听过几节,老师讲的很清楚,是能学到东西的课,可惜和自己做的方向实在不相关,推荐选,就是期末考试复习压力有点大,虽然考的不难。
我是物院转来的,前期跟课有点吃力,所幸网课可以回放,经常一段话放五六遍。横向比较本专业的同学,大都比较轻松。
田老师上课的方式是带我们读论文,近二三十年的关键论文读一遍,基本上带到前沿了。本质上每一章就是一个协议。
课程评价围绕实验和考试。考试开卷,重题多,考论文上的概念。ns3和mininet的实验坑很多,pyretic比较简单。投了很多时间精力进去,最后结果也是过得去。如果有师兄师姐的话请尽量抱紧大腿吧。
虽然不和计网打交道,还是保质保量完成。最后给了90分还可以。田老师很认真的,实验的基本操作会带你走一遍,至少知道查资料的方向了,虽然讲的内容网上都有更详细的。
总之以后再也不会碰计网了。ns3和mininet,我们再也不见。
个人整理的部分实验资料:
SDN之mininet教程:https://my.oschina.net/u/2245781/blog/889820
SDN之mininet&POX介绍:https://www.jianshu.com/p/d33a75aaa080
mininet使用指南,有讲fat tree:https://www.sdnlab.com/11495.html
fat tree拓扑源码:
RipL:某大佬基于mininet做的fat tree拓扑
ubuntu系统安装mininet(云服务商一般不提供pyretic镜像,直接用ubuntu装即可)
git clone http://github.com/mininet/mininet
cd mininet ./util/install.sh -a # -a指安装其他包,仅安装mininet将-a换成-n3v
中间可能会报错,提示找不到ifconfig
sudo apt install net-tools
测试(任选一个)
sudo mn
sudo mn --test pingall
拓扑结构:3种方法:直接mn、修改mininet/custom/topo-2sw-2host.py文件以及手撸python脚本
同个拓扑结构,写法不同表现不同,会出现千人千面的坑。
python脚本直接进入mininet>提示符:
net = Mininet(topo)
net.start()
CLI(net)
net.stop()
运行文件:
chmod a+x simpleTest.py sudo ./simpleTest.py
拓扑图:miniedit
sudo mininet/examples/miniedit.py
POX
各项功能见wiki。POX是斯坦福开发的,两个链接内容相同:
https://openflow.stanford.edu/display/ONL/POX+Wiki.html#POXWiki-openflow.spanning_tree
https://noxrepo.github.io/pox-doc/html/
pox命令
./pox.py forwarding.l2_learning openflow.spanning_tree --no-flood --hold-down
其他终端关闭pox进程
lsof -i:6633
kill -9 PID
pox内部终止(^C失效的情况下)
exit()
生成树spanning tree用于解决循环网络冲突。openflow.spanning_tree依赖于openflow.discovery循环网络问题。openflow.discovery原理:http://www.aiuxian.com/article/p-2445866.html
循环网络无限转发packet的bug(原因很多,其中一个):https://github.com/noxrepo/pox/issues/139
循环网络实例:http://www.brianlinkletter.com/using-pox-components-to-create-a-software-defined-networking-application/(2pod-fat tree表现良好,4pod出现bug:2个edge switch不通)
查看switch流表:(下方等价)https://mailman.stanford.edu/pipermail/mininet-discuss/2013-November/003432.html
$ sudo ovs-ofctl dump-flows s1 mininet> dpctl dump-flows s1
POX不直接显示spanning tree,要修改代码。位置在line111附近。
$ vim ~/pox/pox/openflow/spanning_tree.py
到这里为止决定放弃POX。
这个实验已经浪费了我一周的时间,极大打击了自我效能感。不知道为啥我要老老实实磕这个实验,mininet带着POX滚粗克,现在!
改变方案。
目前可行的方案是直接用mininet命令行,开启OpenflowVSwitch的STP(生成树)支持。
OVS虚拟openflow交换机配置汇总:https://www.cnblogs.com/zfyouxi/p/4904733.html
stp实例https://stackoverflow.com/questions/30888845/how-to-enable-brctl-stp-using-python-script
田野老师的高级计算机网络课程是读论文的形式,每节课讲一到两篇计算机网络领域的经典论文。内容涵盖 Internet 历史、网络测量、P2P、TCP 拥塞控制、内容分发网络、广域网(BGP)、数据中心网络、软件定义网络、内容中心网络等。
课程主页已经 404 了,类似这个:
https://www.cs.princeton.edu/courses/archive/fall14/cos561/syllabus.html
虽然我是搞网络研究的,但这些经典论文还是有很多没有读过,毕竟网络这个方向挺大的。
这门课程的实践性比较强,要求用 mininet 和 NS-3 分别仿真一个网络拓扑。内容也很新,很多论文是近年 SIGCOMM/NSDI 上的。
我当年的作业: https://git.lug.ustc.edu.cn/boj/advanced-network-course/
期末考试是开卷,允许带论文,我记得考了一个用 pynetic 实现某个网络功能,我之前还真没细读过 pyretic,考试的时候才现场看着论文里的语法写的。
超级好评这门课,建议11系所有人都选这门课。
这门课的老师是田野老师,感觉老师非常的平易近人,对学生很好,设身处地为学生考虑。
授课方式:以老师带读论文的方式进行,如果研究方向是网络帮助应该会很大,研究方向不是网络也能拓展视野。
点名:课程全程无点名
作业:课程全程无小作业
成绩构成:开卷考试(40%)+课程论文(60%)
考试:考试以开卷形式进行,考核内容是上课所讲论文,老师会在最后一次课划重点缩小范围,很多论文不做考察,可能会考的论文都明确指出了考点,复习起来应该是非常轻松,毕竟范围已经非常小了。最后试卷上所有题目都是老师指出的重点,考前需要把Fattree仔细看看,这个年年考,此外就是划的重点指出的PIFO、SP-PIFO的算法、流程也要提前看懂,节省时间。
论文:课程论文自行选题,可以单人成组也可以4人以内合作进行,建议好好写。
给分:非常好,没想到能有这么高,当然论文之类的都很认真的完成了。
向田野老师表示感谢,毕竟科大对于课程加权成绩是有要求的,计算机系确实有一些很难的课给分不太高,推荐所有11系学生都去选!!!!!!
老师讲的内容都是很核心的网络经典文章,都具有突破性的意义。
考试会划重点,考试内容不难,主要都是PPT上的内容,所以一定要把PPT学好
田老师人很好,是会为学生着想的那种老师。
分还没出,按照往年信息,很多90多分
作业就一个大作业,看三十篇文献,写个综述论文,这个和去年做实验不一样。
YYDS!
上课不点名,爱去就去。 (野哥讲的论文都很OK,但是先研院11f的教室设备属实不行,不坐前排基本听不清
一共三个大作业,具体可以参考其它点评(建议早点配置好环境 “借鉴”前辈们的project也方便些
期末开卷,就是上课讲的论文,复制粘贴ppt,over。
24年春期末考题:
复习建议:老师提供的PPT,每个都要做好准备,复习范围就按ppt里给的就行,把例子都动手做一遍,或者提前做好。
老师上课讲的基本都是近十年来的顶会论文,和本科学的计算机网络很不一样,因为不是做这个方向的,给我的感觉更像是数据结构与算法mix计算机网络应用的感觉,老师考前会划重点,今年没有实验,最后是考试+小组论文,给分超好
这个点评针对和我一样想水过的朋友
23春期末考题:
1. Elastic Sketches:插入、查询操作模拟
2. SP-PIFO: 入队、出队模拟
3. MPTCP:计算EWTCP、Couple算法下每个链路上的流量
4. PIFO:STFQ算法模拟
5. Fat tree:switch标号以及计算路径
6. PMAC地址的各段意义以及不同路由怎么获知自己的PMAC
平时不点名,成绩=期末*40%+综述*60%。综述最多4人组队,参考最少30篇论文,老师还会贴心的给一个如何写综述的PPT。考试不是很难,只要把最核心的算法搞懂就可以了,这些算法只占一个PPT中的几页,所以真的可以复习到60分的水平结果考出来100分
上课内容就是掏出论文根据各个方向来讲
田野老师这门课今年没有实验了,改成调研论文(可分组可单干)
最后还是花了不少时间的,但是我认识的同学分数都很好90+
然后最后会有个开卷的考试,考点老师最后会给ppt
基本上都在里面,平常也不点名,自己复习还是能学到不少东西的
课程评价其它人说的很全面了,实验又有了变化,我更新一下实验参考:
Github: https://github.com/Indigo6/advanced-network-course
Ustc 超算 Gitlab: https://git.ustc.edu.cn/Indigo6/advanced-network-course
究极水课,完全不考勤也没有平时作业;期末考试开卷且考纲明确,难度简单;最后要交一篇相关的综述小论文,但是给分很好,非相关方向的学生也可以放心选
2024期末考试试题内容:
(1)fatree:(a)求IP地址(b)两个主机传输路径(c)某一个交换机的路由表
(2)elastic sketch:(a)不同f在已有的情况下进入,如何修改heavy和light部分 (b)最后查询的结果
(3)PIFO:三个流,三个不同权重进行模拟队列
(4)SP-PIFO:不同包进入,然后模拟修改队列边界,以及最后出队的序列
(5)HCSFQ:模拟,计算a(v),c(u),掉包率等,纯计算(计算量较大)
(6)Cebinae:注水算法和最大最小公平性的应用,简单的计算
考题不难,很常规,考前花1天把所有重点内容看一遍,考场上做题还是很舒服的
一手消息,提前20分钟交卷出来了。题目很简单,考前花一天时间都看一遍,例题做做就好了。
2024春期末考试题
非常简单考试,爱来自鼠鼠
期末考总共六道计算题,期末复习ppt都涵盖了,复习的时候直接对着复习 ppt 的例子嗯看就完事
上课就去了第一节,速通了一下午加一晚上之后,考试嘎嘎一个小时算完,非常友好!研究生课就该这样,墙裂推荐!
简单回忆版如下:
剩下论文过几天肝一下。。
期末开卷,1-4人小组一篇综述考后两周交
中期今年加了一个综述的调研报告,确定方向,800字,说是为了督促不要临ddl再开工,实际上调研结束还是到期末考后才开工
每节课讲一篇或几篇论文这样,讲的很多,但是
最后一节课会划范围,有一半内容都不在范围内
所以也没必要听课了考前速成就好()
看起来每年的范围会有些许波动,不能全靠往届的重点总结,还是得自己看完一遍ppt
题目都不难不用太关注原理,大概了解就行了
除了开始下学期选课了还没出分,都挺好的