1.一种基于SDN的流量发生器虚拟化实现系统,包括用于与实验用户进行可视化交互的交互层,其特征在于,还包括控制层和数据层;所述交互层还用于为实验用户呈现网络物理拓扑图,和显示流量发生探针产生数据流量的动态变化折线图,并为控制层提供配置参数;所述控制层包括用于获取SDN交换集群拓扑信息的拓扑呈现模块、用于实现不同用户并行操作时实现数据分离的网络虚拟化模块和流量发生探针控制模块,流量发生探针控制模块用于解析交互层传递的配置参数,并将解析信息传递给数据层,控制层还用于实现SDN交换集群状态信息感知,和实现多用户自定义拓扑实验的虚拟网络创建,实现不同实验用户间的数据隔离;所述数据层,利用流量发生硬件产生网络数据流量,并注入SDN交换机集群中;
所述控制层的拓扑呈现模块包含拓扑绘制模块、状态信息处理模块、拓扑信息感知模块、节点状态监测模块及数据库模块;其中拓扑绘制模块,用于调用状态信息处理模块处理整合的拓扑结构数据表,根据节点间的逻辑关系,绘制逻辑拓扑图,可视化的呈现在用户界面;所述状态信息处理模块,对拓扑信息感知模块和节点状态监测模块接收到的网络状态信息进行解析,生成拓扑结构数据表和节点性能数据表存储在数据库模块当中,并将处理整合信息传递给拓扑绘制模块,并且数据库模块中的网络状态数据信息共享于网络虚拟化模块;所述拓扑信息感知模块,定时的向SDN交换集群下发探测数据包,感知SDN交换集群的拓扑信息,并将获取信息传递给状态信息处理模块;节点状态监测模块,定时的向SDN交换集群下发探测数据包,探测SDN交换机集群的节点性能信息,并将获取信息传递给状态信息处理模块;所述数据库模块,用于存储状态信息处理模块生成的拓扑结构数据表和节点性能数据表,并将数据信息共享于网络虚拟化模块。
2.根据权利要求1所述的基于SDN的流量发生器虚拟化实现系统,其特征在于,所述网络虚拟化模块包含路由节点选择/标记模块、数据包标记模块和数据包标记剔除模块;所述路由节点选择/标记模块,用于根据当前用户的区别属性,构造生成当前用户带有VLAN ID的流表,并将当前用户自定义路由策略一并写入流表当中;通过南向接口向当前用户自定义拓扑路由节点下发流表信息,具有相同VLAN ID的网络节点组成一个逻辑虚拟网络;所述数据包标记模块,用于根据当前用户的区别属性向流量发生探针产生的数据包中插入VLAN ID;所述数据包标记剔除模块,构造带有移除VLAN ID行为的流表,通过南向接口向流出SDN网络的数据包所经过的SDN交换机集群的边缘节点下发流表,数据包流经边缘交换机执行该流表指定的移除VLAN ID行为。
3.根据权利要求2所述的基于SDN的流量发生器虚拟化实现系统,其特征在于,所述路由节点选择/标记模块具有路由保护机制,能通过预留算法计算选用当前用户某故障节点的附近节点,通过下发带有当前用户VLAN ID的流表,将计算选用的故障节点的附近节点加入到当前用户虚拟逻辑网络拓扑中,实现计算选取节点作为原有路径的中转路由节点。
4.根据权利要求1所述的基于SDN的流量发生器虚拟化实现系统,其特征在于,所述数据层包括SDN交换机集群和流量发生探针,所述SDN交换机集群用于为流量发生探针产生的网络数据流量提供传输路径;所述流量发生探针用于产生网络数据流量。
5.一种基于权利要求1所述系统的基于SDN的流量发生器虚拟化实现方法,其特征在于,包括以下步骤:
1)用户完成登录,系统初始化,用户根据用户界面呈现的拓扑信息自定义路由拓扑实验;
2)路由节点选择/标记模块获取当前用户的区别属性,根据当前用户的特有区别属性构造带有VLAN ID流表项的流表;
3)路由节点选择/标记模块向当前用户自定义的网络拓扑中的网络节点下发带有VLAN ID流表项的流表,带有相同VLAN ID的网络节点组成逻辑上的虚拟网络;
4)数据包标识剔除模块向数据包流经的SDN网络边缘SDN交换机下发带有移除VLAN ID行为的流表;
5)当前用户通过流量发生探针控制模块开启流量发生探针,产生数据流量;
6)数据包标记模块获取当前用户的区别属性,其中和路由节点选择/标记模块使用同一区别属性,根据获取的区别属性在流量发生探针产生的数据流量流出网口之前,对当前用户的数据包插入VLAN ID;
7)带有VLAN ID的数据包与流经SDN交换机中的流表进行匹配,与VLAN ID匹配一致者,执行流表中action指定的转发动作;匹配不成功,直接将数据包丢弃;
8)当数据包到达边缘交换机时,数据包按流表优先级顺序依次与SDN交换机中的流表进行匹配,首先匹配路由节点选择/标记模块下发的流表,若匹配失败直接将数据包丢弃;
若匹配成功,然后与数据包标识剔除模块下发的流表进行匹配,执行该模块action流表项中的移除VLAN ID行为,并作出相应的转发。