2019寒假训练营寒假作业(四)
mininet部分
## 一、mininet的安装过程截图及说明
- 1、更新或者安装git
- 2、github上克隆源码
- 3、创建并切换2.2.1分支,安装mininet
经过漫长的等待和刷屏般的安装,发现“-a”是全部安装而且2.2.1还不是最新版本。。。
- 4、版本和基本命令测试
当前版本:2.2.1
## 二、使用miniedit工具搭建拓扑的过程截图及说明
- 1、打开miniedit
- 2、创建拓扑
## 三、通过修改参数连接控制器的详细过程截图及说明 来到学校以后无法下载连接器。。。下载链接和网站都过不去。。。 ![](https://img2018.cnblogs.com/blog/1593312/201902/1593312-20190224170821130-1925270519.png)
除此之外,其它问题:
- 1、jdk环境未设置;(已解决,成功设置完了环境变量,但是ant还是没过去)
- 2、git floodlight实在太慢了。。。
- 3、虚拟机网络和锐捷无法共存。。。
## 四、连接控制器的过程遵循什么协议?简单描述一下这个过程
猜的:有TCP和TLS/SSL(Transpot Layer Security):
- TCP
- 1、发送请求:发送方发送数据包并将标识位的SYN置为1;
- 2、同意请求:接收方如果可以接受数据包请求,回发一个数据包并将标识位SYN置为1,同意连接。同时将ACK位置为1,表明“确认号ack”字段有效,其值为第一个数据包序列号+1;
- 3、反馈:发送方再次发送另一个数据包,将ACK为置为1,其值为第二次数据包的序列号+1。
- TLS/SSL:通信双方互相验证对方的数字证书,确认对方的身份,并通过密钥交换协议,确定出相互通信时使用的加密算法和密钥,之后的数据通信都使用协商好的加密算法进行加密传输。
## 五、运行生成的脚本,检测主机之间是否互通(pingall),并截图
肯定不可能ping通了,缺少该连接的控制器和下发流表(添加流表以后也是这个状态,看来控制器是关键一节,miniedit建立的拓扑只是简单的构造了结构)
手动添加交换机s1,s2流表:
- dpctl del-flows
- dpctl add-flow "tcp:127.0.0.1:6634 in_port=1,actions=output:2"
- dpctl add-flow "tcp:127.0.0.1:6634 in_port=2,actions=output:1"
- dpctl dump-flows
## 六、把生成的python脚本上传到github仓库
# 本次训练营总结
## 你觉得自己收获到了什么(包括知识、技能、意愿)?如何体现?
知识和技能的收获肯定不止一星半点,貌似以后都或多或少能接触和应用到:
例如github上摘取他人代码以后的解读和修改;例如在这个学习过程中也可以应用到平时学习程序语言的时候用不到的知识框架和想不到的脑回路,加深了对它们的理解;最主要的是学到了新的算法,以后可以略施一二。。。。。。
当然在攻克难题、获取知识的同时,在锻炼自己自学能力的同时也尝试着咨询了他人的建议和看法,有时候可以咨询一下成功者的经验其实未尝不可,一直靠自学也会绕进一个死胡同。
## 自己还存在着那些不足或者遗憾?
- 1、思维还是比较局限,拓展一点就容易打不开思路了;有时候观摩一下别人的答案,能感受到自己和别人的差距所在。
- 2、对于已经想好的改进思路也搜集到了资料,但是可惜因为能力和时间受限,没能亲手再次实现(可能就像第三次作业的最后那样)
- 3、自学能力有待加强,还是自学得太慢
- 4、好奇怪啊,有时候因为客观条件上的故障例如网络端口等问题,导致难以解决一些关键性问题(家里网络上不了github,无法上传文件至github,然后校园网又不能和桥接下的虚拟机网络共存,热点甚至过不去jdk的安装?等等诸如此类的问题),有时需要绕一个大圈才可以解决。
- 5、相比于其他其次作业,最后一次作业由于各种原因很迟才动工,加上时限短,所以没有时间去认真完成这次作业,没能深入了解这次作业的精髓;而且发现,不使用miniedit也可以通过直接通过python编辑内容诶(好像比这次作业更有挑战性了)。
第三次作业未实现部分的补充
很遗憾没有更多的时间思考和改进。