选课类别:基础 | 教学类型:理论课 |
课程类别:研究生课程 | 开课单位:计算机科学与技术系 |
课程层次:硕士 | 学分:3.0 |
本课程的教学目标是在学生已经学过的计算机网络的基本理论知识以及网络的基本应用基础上,跟踪计算机网络理论和技术发展的最新动向,讲授计算机网络的新概念、新技术、新发展和新应用,使学生掌握网络的最新理论和技术,始终把握网络信息时代的脉搏。通过具体网络实践,解决实际问题,掌握网络科研和工程的基本技能,以适应现代信息化社会对计算机网络的要求,为进一步利用计算机网络资源、从事相关的学习和研究打下基础。课程紧跟计算机网络的发展前沿,重点介绍网络体系结构、网络核心机制、网络关键技术和网络系统方向具有代表性的前沿成果,具体方向包括数据中心网络、新型网络协议、软件定义网络/网络功能虚拟化、新一代互联网和未来网络等,并指导学生使用ns-3、mininet、Pyretic、ONOS等先进的工具环境,开展面向新型网络的实验实践。本课程强调实际动手能力的培养。
说下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
老师讲的内容都是很核心的网络经典文章,都具有突破性的意义。
考试会划重点,考试内容不难,主要都是PPT上的内容,所以一定要把PPT学好
田老师人很好,是会为学生着想的那种老师。
分还没出,按照往年信息,很多90多分
作业就一个大作业,看三十篇文献,写个综述论文,这个和去年做实验不一样。
YYDS!
上课不点名,爱去就去。 (野哥讲的论文都很OK,但是先研院11f的教室设备属实不行,不坐前排基本听不清
一共三个大作业,具体可以参考其它点评(建议早点配置好环境 “借鉴”前辈们的project也方便些
期末开卷,就是上课讲的论文,复制粘贴ppt,over。
田野老师的高级计算机网络课程是读论文的形式,每节课讲一到两篇计算机网络领域的经典论文。内容涵盖 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,考试的时候才现场看着论文里的语法写的。
课程评价其它人说的很全面了,实验又有了变化,我更新一下实验参考:
Github: https://github.com/Indigo6/advanced-network-course
Ustc 超算 Gitlab: https://git.ustc.edu.cn/Indigo6/advanced-network-course
上课内容就是掏出论文根据各个方向来讲
田野老师这门课今年没有实验了,改成调研论文(可分组可单干)
最后还是花了不少时间的,但是我认识的同学分数都很好90+
然后最后会有个开卷的考试,考点老师最后会给ppt
基本上都在里面,平常也不点名,自己复习还是能学到不少东西的
期末开卷,1-4人小组一篇综述考后两周交
中期今年加了一个综述的调研报告,确定方向,800字,说是为了督促不要临ddl再开工,实际上调研结束还是到期末考后才开工
每节课讲一篇或几篇论文这样,讲的很多,但是
最后一节课会划范围,有一半内容都不在范围内
所以也没必要听课了考前速成就好()
看起来每年的范围会有些许波动,不能全靠往届的重点总结,还是得自己看完一遍ppt
题目都不难不用太关注原理,大概了解就行了
除了开始下学期选课了还没出分,都挺好的