use python2 to complete RIP router protocol
- 使用方法: 非常简单直接 start()后等待每个路由器都显示 ok!字样即可开始 在主机层面 ping,即可使用 h1.ping(h2)这样的语句
- run.py:
此时定义的 my_topo.py 在 candy 之下,可以使用
默认直接调用 router 代码(也可自己切换)
由于突然想到作为年轻人要讲武德,不能去骗,去偷袭我们敬爱的张老师,我作为年轻人要耗子尾汁,不能用内部 core 的代码,特此更新了路由器的代码,见dv_router_new
,新版有如下特性:
- 首先代码更加简洁,逻辑更加清楚
- 取消以往的转发表,目前实现邻居表和路由器表两个表即可完成功能
- 取消了
core
类的topo
中get_port()
方法,更加贴近要求
逻辑上做出了如下改变:
首先对于 DiscoveryPacket 来说,它只负责对于每个来自邻居的 packet 的处理,不会泛洪的理由是它在发出时 dst 填入的为 NullAddress,同时在路由器中我没有设置,所以都只会发往邻居
然后对于 RoutingUpdate 来说,它负责的工作首先是检查来的延迟矢量(也就是原来我们设置的转发表)有没有我们目前路由表中没有的项,如果有就加入路由表项并同时初始化相关条目,然后再像原来一样对来的延迟矢量做相关的分析计算,其余逻辑都相同