应用层的自组织虚拟路由使用 Python 语言实现,每台主机模拟网络层路由
器,实现对加入网络、退出网络、转发数据包、广播路由表等行为的模拟,基于
socket 编程模拟路由器之间的通信。
在本路由模型中,我们模仿 RIP 响应报文自定义一个报文结构,依照 RIP
协议,每台路由器维护一张路由选择表,该选择表包括路由器的距离向量和该路
由器的转发表,采用 DV 算法实现在每一个路由器上分布式地异步计算到其它所
有目的子网的最短路径。同时,我们设计基于字典嵌套列表的数据结构以表示路
由器之间的邻接关系,并添加了一个与之匹配的遍历算法来扫描所有邻接路由器
以模拟 RIP 协议中相邻路由器之间相互交换路由选择信息的行为。如果某台路
由器退出网络,则相邻路由器与该路由器建立 TCP 连接失败,认为该路由器不
可达。当这种情况发生时,依照 RIP 协议,邻接路由器将修改其路由选择表,
然后通过向相邻路由器发送通告来传播该信息,相邻路由器也将修改其路由选择
表并广播,直至所有路由器的路由表处于稳定状态。
与 RIP 协议有所不同的是,我们使用 TCP 发送 RIP 请求和响应报文。
总的来说,我们根据 RIP 协议实现了路由器加入网络、退出网络、广播路
由表、接收回应、转发数据包、网络中所有路由器通过 DV 算法异步更新路由表
等行为的完全模拟。
评论0
最新资源