一种基于SDN的混合网络架构设计与实现_第1页
一种基于SDN的混合网络架构设计与实现_第2页
一种基于SDN的混合网络架构设计与实现_第3页
一种基于SDN的混合网络架构设计与实现_第4页
一种基于SDN的混合网络架构设计与实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1SDN体系结构分析SDN技术是计算机网络领域的一种新的驱动力,它本身诞生于美国斯坦福大学实验室的一个课题,是为了让网络管理员通过集中控制的方式,更方便地对网络通信进行安全控制。经过十多年的发展,SDN的概念由于不同场景的应用而有了不同的标准,目前最普遍接受的定义是由开放网络基金会(OpenNetworkingFoundation,ONF)提出的,也被业内人士称为狭义SDN,通常具有三个基本特征:网络转发和控制平面的明确分离、网络逻辑从硬件实现到软件的抽象和存在协调网络设备转发决定的控制器叫如图1所示,ONF提出的SDN参考模型分为三层架构,由下至上依此为基础设施层、控制层和应用层。应用层与控制层通过北向接口进行交互,但目前还没有统一的规范。控制层和基础设施层通过南向接口进行交互,一般采用ONF提出OpenFolw协议格式[6]o图1SDN参考架构模型基础设施层包括数据平面的交换设备(例如,交换机、路由器等)。这些交换设备的功能大多是双重的。首先,它们负责收集网络状态,暂时将这些状态存储在本地设备中并将其发送到控制器。网络状态可以包括诸如网络拓扑、流量统计和网络使用之类的信息。其次,它们负责根据控制器提供的规则处理数据包。控制层通过其两个接口桥接应用层和基础设施层,向下与基础设施层(南向接口)交互,它为控制器详细指定了访问和控制交换设备的功能。这些功能可以包括报告网络状态和导入分组转发规则。向上与应用层(北向接口)交互,它以各种形式提供服务接入点,例如,应用程序编程接口(ApplicationProgrammingInterface,API)。SDN应用程序可以通过此API访问交换设备报告的网络状态信息,根据此信息做出系统调整决策,并通过使用此API将数据包转发规则设置为交换设备来执行这些决策。应用层包含为满足用户需求而设计的SDN应用程序。通过控制层提供的可编程平台,SDN应用程序能够访问和控制基础设施层的交换设备。SDN应用程序的示例可以包括动态访问控制、无缝移动和迁移、服务器负载平衡和网络虚拟化。2基于SDN的混合网络结构设计目前,已经提出的MANET与DTN网络混合架构有三种,分别是DTN-over-IP架构、IP-over-DTN架构和IP-cum-DTN架构。但都有着明显的缺陷和不足,虽然DTN-over-IP架构最大程度的支持已有的各种DTN协议,但它仍处于应用层与网络层之间,所以只与专门为捆绑层编写的应用程序兼容,并且还有在只使用端到端路径时会产生额外的开销,DTN路由不与IP路由交互等缺点。IP-over-DTN架构一般用在延迟容忍网络包含于移动无线网络节点(DTNoverMANET,DOM)模型上,它将IP包封装在DTN包中,能大大提高原来基于IP的应用程序兼容性,但这种方法有明显的层冲突,并且一旦采用DTN模式,即使网络链路恢复,也不能切换成MANET模式传输,大大增加了网络时延。IP-cum-DTN架构不覆盖协议,它是依赖于节点(_般为网关)中的第三个模块将两种传输模式拼接成一个端到端层,好处是把DTN和MANET传输实现了分离,但架构模型对传统架构改动较为复杂,一般应用在D0M模型的边缘DTN代理节点。针对已经存在的问题,利用SDN,我们设计的延迟容忍网络和无线移动自组织网络融合方案如图2所示。在这个混合网络架构里,我们将负责DTN转发的延迟容忍模块和常规路由的路由管理模块基本分离,整个架构分为控制器单元(负责路由接收、流表设置、数据处理)、路由管理模块、软交换单元(负责流表配置和数据转发)和延迟容忍模块四大部分。需要指出的是,每个节点都是〜分布式控制器,而不是整个网络的集中控制器,节点的通信服务版可以有多个外部接口,软交换机支持多接口。图2基于SDN延迟容忍网络和无线移动自组网络的融合框架软交换单元接收带转发的数据报文后,根据数据报文中的目的地址查找流表,当流表中能够找到相应目的地址所对应的流表数据时,向对应的网络发送数据报文。当流表中找不到相应目的地址所对应的流表数据时,将数据报文发送至延迟容忍模块,由延迟容忍模块通过延迟容忍的方式发送该数据报文。该架构解决了常规路由转发协议栈与延迟容忍转发协议栈不兼容的问题,同时不存在控制器融交互等问题,没有给网络增加额外的开销和负担。混合架构涉及两个重要过程:流表构建过程和数据报文转发过程。2.1流表构建SDN和传统互联网分层有一定区别,但流表的构建仍是可以基于现有协议算法所确定的路由信息,路由管理模块运行自身的路由和组网协议(例如最优链路状态路由协议),根据其他节点反馈回来的消息,确定每个目的子网或目的地址的路由。将得到的路由信息通过北向接口的API,告知或者发送给控制器单元里的路由接收模块。这时,路由接收模块将接收到的路由信息转交给流表设置模块,流表设置模块是将路由信息转化成相应的流表设置指令,并将流表设置指令发送至软交换单元中的流表配置模块。流表配置模块根据控制器单元所发送的流表设置指令,形成相应的流表,流表由流表数据和缺省项信息所组成,流表数据和缺省项信息的一般格式分别如图3和图4所示。匹配目的地址下一跳输出端口动作图3流表数据一般格式匹配字段下一跳输出端口动作图4缺省项信息一般格式需要指出的是,由于路由信息分为可达路由和不可达路由。当路由信息为可达的路由时,流表配置模块则根据流表设置指令在流表中生成相应的流表数据;当路由信息为不可达的路由时,流表配置模块则根据流表设置指令在流表中删除相应的流表数据。2.2数据报文转发在数据报文转发过程中,当一个携带有目的地址的分组,也就是数据报文,通过物理接口到达软交换单元后,软交换单元的数据转发模块根据数据报文中的目的地址查找流表配置模块生成的流表。当流表中能够找到相应目的地址所对应的流表数据时,向对应的网络发送该数据报文。当流表中找不到相应的目的地址所对应的流表数据时,数据转发模块会将数据报文提交至控制器单元的数据处理模块。然后数据处理模块将接收到的数据报文发送至延迟容忍模块。最后由延迟容忍模块将的数据报文通过延迟容忍的方式进行发送。最终实现有路由分组转发和无路由分组转发的融合。通过在每个节点设置一个分布式控制器,并通过路由模块、DTN模块与控制器模块的交互实现系统存在路由时采用路由转发分组,系统不存在路由时采用延迟容忍网络转发分组的融合分组转发。本文提出的架构,不存在控制器融合、交互等问题,没有给网络增加额外的开销和负担,对传统路由模块和DTN模块改动也很小。由于控制器是每节点一个,因此在网络分裂时不需要重新选举出控制器,在多网络融合时,不需要多控制器交互关闭其中一个或多个控制器,组网基本上不会给网络引入新的开销,网络效率高。3快速切换路由机制的设计为了更灵活地切换延迟容忍模式和常规路由两种策略,达到“无路走DTN,有路走MANET”的效果,本文还提出一种路由快速切换机制,根据网络路由通断情况动态选择使用DTN或者MANETO便于描述,把主控单元和软交换单元里的模块隐藏(如图5所示)。图5基于SDN的混合网络架构略图在该结构图中,路由模块上运行常规路由协议,当流表建立起来后,通过控制器设置软交换机内部的流表,用于软交换机的查表转发。当节点收到来自输入接口的分组时,该分组将被导向查阅流表,确认是否具有到目的节点的路由。快速切换路由机制的流程图如图5所示。首先节点通过无线信道或者物理网口接收到数据包,用户可以按照需求情况通过扩展流表项区分是否为DTN数据包(例如设置服务类型的优先级),不是DTN数据包,按常规路由转发方式进行。如果是DTN数据包,软交换单元通过主控单元将DTN数据包递交给DTN模块。DTN模块收到DTN数据包后,继续DTN传输模式,同时构造一个探测分组,探测分组的目的地址设置为目的节点的IP地址,分组的TTL(TimeToLive,生存时间)字段设置为1,然后将此探测分组插入到输入接口队列,开启定时器,则此探测分组会被送到软交换机里进行查表。如果流表里有到目的节点的路由,就会根据流表指定的接口转发此探测分组,由于该分组的TTL为1,因此分组在流表转发时,TTL值自动被递减为0,自然会被转发模块丢弃traceroute原理),在转发出接口之前已经被丢弃,从而不会给网络带来额外负担,并且在定时器超时时间内没有收到刚刚发出的探测分组,则认为本节点有到目的节点的路由,因此该数据分组不需要通过DTN模块转发,DTN模块将该数据包恢复成常规数据包格式,插入到外部接口发送队列中。否则,软交换机将没有流表对应项的探测分组送入控制器,再由控制器转交给DTN模块进行发送。DTN模块从控制器处收到刚刚发出的探测分组,说明没有到目的节点的路径,就会继续使用DTN模块进行DTN方式传输。同时开启周期性构建探测分组,判断是否有到目的节点的“端到端”路径,从而进行快速路由切换。通过此种方式,节点只需要构造一个开销极小的探测分组,在节点内部完成是否进行传输切换的判断,也没有对常规路由协议和DTN协议中的数据格式进行修改。比通过扩展MANET路由协议数据格式有着兼容性更强、扩展度更高等优点,在对网络资源有限的Ad-hoc网络(如战场无人机通信等)中有着更强的参考价值。4实现与性能分析验证基于SDN混合网络架构的可行性,本文基于Ubuntu操作系统搭建了SDN环境,利用C++语言实现了DTN模块探测包的发送和接受处理,并对SDN控制器RYU核心代码进行了修改,能够处理我们需要发生的事件。然后通过与传统网络架构(DTN-over-MANET)做实验对比,得出我们提出方案的优势。4.1硬件设备考虑到实验的易操作和易实现,本实验的硬件环境考虑使用基于ARM内核的Ubuntu16.04操作系统的树莓派3b,是一款价格便宜并且功能俱全的微型开发板,适合大部分研究人员的测试和应用。4.2软件SDN的控制器采用Python语言编写的基于组件的RYU,它是一个开源软件,可以为开发者自定义新的网络管理和控制应用程序,支持各种用于管理网络设备的协议。软交换模块采用高质量、多层的虚拟交换机(OpenVSwitch,OVS),与物理交换设备相比,开销小,可以通过编程方式扩展大型网络,同时能支持许多标准南向接口协议如OpenFlow等,快速切换路由机制流程如图6所示。图6快速切换路由机制流程DTN模块使用DTN2作为DTN协议实现。DTN2根据网络规范RFC5050,实现了DTN捆绑协议,允许DTN节点之间利用Bundle层传输数据。由于这个软件只考虑了DTN情况下的传输,本文的探测分组的构造和DTN数据包转换成IP包工作在DTN2基础上完成。为了验证架构的可行性,我们选择了DTN2软件里比较简单的DirectDelivery路由算法。这种算法只允许源节点与目的节点相遇后才发送数据,有利于实验对节点传输方式的判断。常规路由模块使用目前较为成熟的OLSRd作为协议源码。该源码用于实现路由协议最优状态链路协议(OptimizedLinkStateRoutingProtocol,OLSR)oOLSR是链路状态协议(LinkStateRoutingProtocol,LS)的改进,它是基于链路状态的主动路由协议,节点之间通过周期性的交互状态维护整个网络的拓扑信息,与被动协议不同,如果节点传输数据失败,不需要转入链路维护状态,直接丢弃该数据包,降低时延。4.3实验流程为了验证基于SDN混合网络架构和切换算法的有效性,本设计了两种场景进行实验。选择4个树莓派作为节点,DTN的ID依此为Pil〜Pi4,对应的IP地址依此192.168.1.1~192.168.L4o对每个实验场景,分别采用传统网络架构和基于SDN的网络混合架构发送数据包,采用何种网络传输模式可以通过数据包的存入路径判断,然后利用Wireshark抓包工具和目的节点接收情况来对结果进行分析。场景1。源节点为Pil,目的节点为Pi4,形成的连通关系如图7所示,首先各节点采用传统架构,源节点Pil发送数据包,然后查看Pi4的接收和所有节点抓包情况;然后各节点换成设计的SDN混合网络架构进行相同实验,查看结果。图7实验场景1拓扑关系场景2。各节点的连通关系如图8所示,同样先后采用传统结构和SDN混合网络架构的顺序实验。源节点Pil和节点Pi2为无效链路,发送数据,查看各节点的抓包和接收情况,然后移动源节点Pil,使其与节点Pi2形成可用链路,但与Pi4不在一跳范围内,再次查看各节点的抓包和接收情况。图8实验场景2拓扑关系4.4实验结果及分析场景1。树莓派不管是采用传统架构还是SDN混合网络架构,Pi4接收到数据包,并且以文件形式存入MANET对应的路径,通过Wireshark抓包,发现每个节点都有到目的节点的IP,说明在节点之间链路存在的情况下,两种架构都能采用常规路由模式传输数据。场景2。当Pil和Pi2没有可用链路时,树莓派不管采用哪一种网络架构,Pi4都没有接收到数据包,通过Wireshark查看,只有Pil有到目的节点IP的记录,并且以文件形式缓存在DTN对应的路径,说明两种架构都能在网络断路时切换成DTN模式。当Pil和Pi2恢复链路后,在采用传统架构的情况下,数据包仍存储在Pil的bu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论