SDN特点:
中心控制
可编程网络
网络可视化
SDN与传统网络相比,将网络的控制平面和数据平面相分离,在传统网络中数据包的控制逻辑和数据转化都由路由器完成,随着网络控制的灵活性越来越复杂,路由器的设计也变得日益复杂。openflow协议是SDN 的众多实现之一,但是由于其良好的灵活性和扩展性,已成为标准。在SDN中,与传统交换机一样,网络设备交换机只负责转发接收到的数据包,但openflow交换机转发需要的流表,不是由自身创建并维护的,而是从控制器端获取的,控制器维护着整个网络的全局拓扑视图来完成对网络的控制。
交换机和控制器的一次通信:
当数据包到来时,交换机查询自己的流表发现并没有匹配到相应的转发规则,那么交换机通过PACKET-IN把该数据包交给控制器,由控制器决定该数据包如何转发。
mininet原理:
mininet通过使用linux内核基于进程的虚拟化和网络命名空间技术来构建虚拟网络,mininet通过网络虚拟化使所有虚拟主机共享宿主主机的网络协议栈。
mininet的这种设计虽然实现了SDN网络仿真的灵活性,但是由于仿真网络中不同的虚拟主机以进程方式共同竞争宿主主机的资源,无法保证链路时延以及数据包的排队时延,尤其是在实验目标是为了测量性能而不是功能的可行性的时候。
缺陷:无法应对大规模网络,无法自动产生流量,以及网络的各种性能指标。
项目的成果:
通过增加物理机的数目扩大SDN仿真的规模。
重难点:
1. 虚拟网络划分:
尽可能减少流量跨越不同的物理主机,数据流量负载尽可能均衡。
在流量还没有发时,流量经过路径无法预测,假设数据流量和链路中的带宽成正比,将虚拟网络看成无向有权图,其中虚拟链路的带宽作为每条变的权值。
我们要做的就是要将一个无向有权图,分割到N个物理主机上,使得N个子图中所有节点权值尽可能接近。
2. 分布式的SDN虚拟网络的构建方法:
3. 流量生成和性能指标获取:
a. 流量发送部分
b. 流量接收部分
c. 流量管理部分
Master端模块划分:
1. 拓扑划分模块:部署在Master端,根据用户定义的全局拓扑文件和worker的配置信息,对全局拓扑进行划分,保证跨物理机流量尽可能少,并将划分的拓扑分发至相应的worker。
2. 流量划分模块:部署在Master端,根据用户定义的全局流量文件和worker的配置信息,对全局流量进行划分,将源端口所在worker作为划分依据。
3. 性能统计模块:主要负责接收各个worker上的发来的统计信息,例如链路利用率和链路时延等。
4. 虚拟网络交换模块:虚拟网络启动后,仿真系统需要能够和虚拟网络中的每个虚拟主机进行通信,发送查询命令,pingALL等。
worker端模块划分:
1. 拓扑生成模块:根据Master端发来的拓扑文件生成虚拟网络,建立成功后发送反馈消息给Master节点。
2. 流量生成模块:使子流量文件能产生流量,保证各个数据流的发送能够并行进行。
3. 性能采集模块:采集各项性能指标,CPU利用率,内存使用情况,虚拟主机每个接口在一定间隔内的收发包数,每个流的最大最小时延。
5.