# war_net_tran_plus **Repository Path**: hysTOP/war_net_tran_plus ## Basic Information - **Project Name**: war_net_tran_plus - **Description**: 无线网络SDN拓展模块,主要实现了拓扑发现和路由计算功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-04-25 - **Last Updated**: 2024-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 战术网拓扑发现和路由计算模块 ### 1. 基本原理 基于OSPF协议,针对无线场景进行了拓展。 #### 1.1 拓扑发现 基于scapy生成arp报文,回复此报文的即为邻居 #### 1.2 非邻居节点的arp 由于通信之间需要先arp获取其他节点的arp,但arp已被用于拓扑发现,因此控制器收集全部节点的mac并下发到每个节点,这样每个节点就可以拥有其他全部节点的mac。 #### 1.3 路径计算 目前暂时基于最短路径树。 #### 1.4 惰性更新 由于emane仿真下,节点间概率性通信成功,导致拓扑变动频繁,因此使用了惰性更新策略,连续n次(默认为3)arp邻居发现成功才添加此链路。 ### 2. 快速开始 #### 2.1 环境安装 切换到root用户,在项目目录执行 ``` pip3 install -r requirement.txt ``` #### 2.2 启动拓扑 启动core之后,打开目录下的 `topt_find.xml`文件,启动拓扑。 ![image-20220426172323875](readme.assets/image-20220426172323875.png) #### 2.3 启动控制器和交换机 在控制器节点(n1)执行 ```sh python3 项目目录/controller/main.py ``` 在交换机节点(其他节点)执行 ```sh python3 项目目录/switch/main.py ``` #### 2.4 观察效果 启动完成之后,等待一段时间。 **在控制器终端可见计算得到的路由表** ![image-20220426172709866](readme.assets/image-20220426172709866.png) **在交换机终端执行 `arp -a` 可以观察到已经具备了其他全部节点的mac** ![image-20220426172842818](readme.assets/image-20220426172842818.png) ### 3. 使用 交换机端根据需要修改 `main.py` 中的参数,直接启动 `main.py` 即可 控制器端可以 `from server import Server` 后,参照 `main.py` ,获取计算全局拓扑。 ### 4. 版本信息 #### v1.0 2022年4月26日 实现了基本功能 #### v1.1 2022年5月3日 完善了可伸缩支持,控制器端可以删除节点和清空全部数据。交换机端允许读入参数一遍切换控制器时重启。 #### v1.2 2022年5月4日 添加了备用控制器功能支持