拓扑

拓扑分析的专有名词——拓扑容差和要素等级

大兔子大兔子 提交于 2019-12-03 22:46:27
在创建向导中有两个名词是 拓扑分析的专有名词——拓扑容差和要素等级。 ①拓扑容差 : 当两个相邻近点的X、Y、Z(Z代表高程,如果要素携带高程信息)距离小于给定的限值时,两个点会聚合成为一个点,共享同一坐标。 我们就称这个限值为拓扑容差。拓扑容差的单位为m,X坐标和Y坐标为拓扑容差的作用对象。例如,拓扑容差为0.001m的拓扑数据集中,两邻近线段的端点V1、V2,如果他们的X、Y坐标差值中有任意一个小于0.001m(两点间的距离小于2×0.001m)时,两点就会融合成为一点,两条邻近的线段融为一条线段。聚合限值来自数据集X、Y的分辨率。例如,某数据集X、Y能够精确到小数点后3位,那么这个数据集的默认聚合限值为0.001。因此,在拓扑数据集创建向导中可以看到聚合容限的默认值为0.001。 注:拓扑容差(又称聚合容限),其英文名为Cluster Tolerance。 ②要素等级 :在拓扑容差中提到,两个小于拓扑容差的邻近点能够聚合成为一个点。那么聚合时应该以哪一个点作为参照呢?此时,对拓扑要素进行分等定级就可以解决这个问题了。 对参与拓扑的要素按照精度进行分类,精度高的要素排在前面,精度低的排在后面。 如此,Rank=1为最高一级,Rank=50为最低一级。例如,由野外勘测、GPS定点、地形图采集3种不同途径获取的坐标点,精度应该是野外勘测≥GPS定点>地形图采集

2019 SDN上机第2次作业

我们两清 提交于 2019-12-03 21:34:46
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 用可视化工具miniedit创建: 输入net命令和pingall命令查看网络端口状况及连通状况: 由上图可知,s1的端口2与s2的端口1相连,h1,h2,h3分别与s1的1,4,3端口相连,h4,h5,h6分别与s2的2,3,4端口相连,如下图所示: 2. 直接在Open vSwitch下发流表,用vlan得到下列虚拟网段,请逐条说明所下发的流表含义 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:2 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=4,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:2 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set

2019 SDN上机第2次作业

ぐ巨炮叔叔 提交于 2019-12-03 21:16:28
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 2. 直接在Open vSwitch下发流表,用vlan得到下列虚拟网段,请逐条说明所下发的流表含义 h1 -- h4互通 h2 -- h5互通 h3 -- h6互通 其余主机不通 3. 直接在Open vSwitch查看流表,提交OVS命令执行结果 4. 提交主机连通性测试结果,验证流表的有效性 5. 利用Wireshark抓包,分析验证特定报文 来源: https://www.cnblogs.com/ruifeng1/p/11809331.html

2019 SDN上机第2次作业 CWC

核能气质少年 提交于 2019-12-03 21:13:06
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 利用Python脚本创建拓扑 from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController,CPULimitedHost from mininet.link import TCLink from mininet.util import dumpNodeConnections class MyTopo(Topo): "Simple topology example." def __init__(self): Topo.__init__(self) switches = [] # add switches (s1 and s2) for i in range(2): sw = self.addSwitch("s{}".format(i + 1)) switches.append(sw) # add hosts and links count = 1 for sw in switches: for i in range(3): h = self.addHost("h{}"

2019 SDN上机第2次作业

血红的双手。 提交于 2019-12-03 21:08:01
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 拓扑由miniedit完成,并验证端口连接情况 2. 直接在Open vSwitch下发流表,实现如下连通性要求,请逐条说明所下发的流表含义 h1 -- h4互通 h2 -- h5互通 h3 -- h6互通 其余主机不通 sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=1,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4 sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=2,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4 sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=3,actions=push_vlan:0x8100,set_field:4099-\>vlan_vid,output:4 //以上是分别将h1,h2,h3三个主机里的转到交换机s1里的连接过程,in_port是指进来的端口号,actions指的是要进行的动作,set

2019 SDN上机第2次作业

 ̄綄美尐妖づ 提交于 2019-12-03 20:42:22
2019 SDN上机第2次作业 1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 1.1创建拓扑 1.2Mininet执行结果 1.3展示网络信息 2. 直接在Open vSwitch下发流表,用vlan得到下列虚拟网段,请逐条说明所下发的流表含义 h1 -- h4互通 h2 -- h5互通 h3 -- h6互通 其余主机不通 将主机1,2,3进入s1的包打上vlan tag,转发端口4 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-

2019 SDN上机第2次作业

限于喜欢 提交于 2019-12-03 20:31:20
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 (1)创建test2.py文档 代码如下: from mininet.topo import Topo class Topo2( Topo ): def __init__( self ): # Initialize topology Topo.__init__( self ) # add switches and hosts sw1 = self.addSwitch('s1') sw2 = self.addSwitch('s2') h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') # add links self.addLink(h1,sw1,1,1) self.addLink(h2,sw1,1,2) self.addLink(h3,sw1,1,3) self.addLink(sw1,sw2,4,4) self.addLink(h4,sw2,1,1) self.addLink(h5

2019 SDN上机第2次作业

无人久伴 提交于 2019-12-03 20:30:46
1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 (1)创建sdn2.py文档 代码如下: from mininet.topo import Topo class MyTopo( Topo ): "Simple topology example." def __init__( self ): # Initialize topology Topo.__init__( self ) sw1 = self.addSwitch('s1') sw2 = self.addSwitch('s2') h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') self.addLink(h1,sw1,1,1) self.addLink(h2,sw1,1,2) self.addLink(h3,sw1,1,3) self.addLink(sw1,sw2,4,4) self.addLink(h4,sw2,1,1) self.addLink(h5,sw2,1,2)

2019 SDN上机第2次作业

回眸只為那壹抹淺笑 提交于 2019-12-03 15:56:34
1.利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 1.1创建拓扑 1.2执行结果 1.3展示网络信息(包括端口) 1.4展示端口连接情况 2.直接在Open vSwitch下发流表,实现如下连通性要求,请逐条说明所下发的流表含义 2.1s1流表 #s1将从端口号为1,2,3的主机发来的数据贴上相同的vlan tag,然后从4端口发往s2(vlan_id从0开始) sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid

AcWing848 有向图的拓扑序列

百般思念 提交于 2019-12-03 15:25:51
给定一个n个点m条边的有向图,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。 若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。 输入格式 第一行包含两个整数n和m 接下来m行,每行包含两个整数x和y,表示存在一条从点x到点y的有向边(x, y)。 输出格式 共一行,如果存在拓扑序列,则输出拓扑序列。 否则输出-1 数据范围 \(1≤n,m≤105\) 输入样例 3 3 1 2 2 3 1 3 输出样例 1 2 3 一道拓扑排序的模板题。拓扑排序的算法是,首先找到入度为0的点(所以需要一个数组 to[] 维护每个结点的入度),将它放入队列,然后依次枚举它的所有出边 t->j ,删掉它们之间的连接 to[j]-- ,如果此时 to[j]==0 ,那么将 j 入队,持续这个过程直到队列为空。 代码: #include <iostream> #include <queue> #include <memory.h> using namespace std; const int N = 1e5+10; int h[N], e[N], ne[N], idx; int to[N], ans[N]; int n, m; void add(int a, int b){ e[idx] =