频道栏目
首页 > 资讯 > 疑难 > 正文

网络技术独立的导火索-SDN和三个问题

13-05-31        来源:[db:作者]  
收藏   我要投稿
网络技术独立的导火索-SDN和三个问题
 
网络技术就是电脑技术么?CPU和操作系统已经牢牢占有了PC,服务器的领地,每个PC,服务器上都会有一个或者多个CPU,都会跑一个OS,甚至如今的手持设备也被灌入了PC的影子,实则一个缩小版的PC,当年的类似单片机的射频终端彻底败阵。手持设备向电脑技术投降是有道理的,因此电脑和手持设备都是无穷无尽的应用来推动的,但是如果有一天物联网深入我们的生活,我害怕肉眼看不到的电子灰尘里面也会跑一个精简版的Linux。
       那么网络技术呢?实际上它早就是电脑了,它是在PC的影子下长大的,网络出生和成长的那段时间,正是PC的巅峰时期。很多人搞不清楚是网络为PC注入了活力还是PC使网络得以诞生,人们不能想象买一个三轮车那么大的设备回家去联网。这个关系正和父子关系一样,父亲给了孩子孩子生命,孩子就必然带有父亲的影子,然而到了一定年龄,孩子就一定会单飞。
       如今带有电脑影子的网络基本长大了,很多问题也暴露了,是需要作出一些规划的时候了。
1.问题一:IP网络的QoS以及拥塞问题
局部突发流量是分组交换网络QoS难以保障的根源,而这又是分组交换网络得以胜出的基础,其背后有排队论作为其理论支撑,突发加排队,丢包是必然的,可别小看了这个丢包,丢包在现行的IP网络中是一件很重要的事。IP分组交换网络没有全局的交通视图,难以做到拥塞分流等缓解拥堵措施。看一下城市快速路或者高速公路,如果远方有一处发生拥塞,该信息会反馈在距离很远的地方,显示于公告屏幕上。IP网络无连接无法进行有效的源抑制(ICMP某种程度上简单地支持),端到端的TCP正是通过丢包这个事实来判断发生了拥塞。由于TCP仅仅实现于终端,中间结点并不缓存TCP数据,所以局部的丢包这个事实经过TCP之后,其重传流量会放大到全局范围,注意,丢掉的包是带内的,它不仅仅指示某处拥塞了,还意味着要重传丢掉的数据包,而这可能会使本已拥塞的网络环境更加恶化。
       由此看来,端到端的传输控制和IP分组交换在其本质上就不能做到很好的QoS保证。局部的突发流量一旦发出,难以避免地会造成在其它局部排队,最终造成丢包,支持突发这个分组交换的优势在流量不均衡的时候会被局部排队丢包这个事实抵消掉!一旦丢包,TCP这种端到端的控制协议就会在全局范围发出重传包,而不仅仅将丢包的影响限制在局部范围内。
解决:
SDN将控制平面整个分离出来,这样就可以实现集中化的控制,它以“流交换”替代“包交换”,而流是可以自定义的,非典型情形下,它可以退化到包交换,另一种极端是,SDN的流交换可以退化(or 进化/回归)到电路交换,具体以什么方式实现转发,就看你怎么定义流了。SDN的特征表明已经有能力在IP传输逻辑之外构建一个或者多个控制中心节点,这些控制中心节点的任务就是提前配置转发节点的转发表,这样就无需等到真正数据到来时动态现场查表了,这是SDN的核心思想。
       从此衍生出来的另一个特性就是全局的信息反馈,由于SDN存在控制中心,那么它有能力放眼全局,在大范围内监控流量,将拥塞信息或者事故信息提前反馈给上游转发节点,具体表现在更新上游节点的转发表!
 
2.问题二:IP网络的传输效率问题
TCP/IP网络在统计意义上工作的很好,其统计复用逻辑架构十分好,但是注意,不能用它来指示实际的传输,它只是用来实现端到端控制和寻址的。实际上目 前的大多数公共核心网还真不是跑在IP上,而是跑在链路层上,比如ATM,SONET/SDH之类的,IP只是部署在这些链路层大网的边缘负责跨区域寻 址。
       数据传输网不应该触动修改数据包,也不应该通过解析数据包的方式得到转发决策,它所做的就是传输,转发决策应该是事先制订好的,因此IP并不适合做传输网。转发要尽可能地简单化,类似光网络中将流映射到波长,然后根据光波的耦合物理特性实现转发,而不是查表这种所谓的“智能”的方式。虽然诸如ATM,MPLS之类的传输网技术都是真正的传输网络,但是实现转发还是需要查表,将数据包通过内部矩阵放到出口队列等智能操作,虽然这种智能操作相比查路由表,改IP头这种智能操作已经大大简化了。
解决:
SDN既然控制逻辑(寻址,流控 etc)已经分离了出去,那么留下的转发逻辑就好像甩开了一个大的包袱,彻底获得了自由!以前那些参照电脑设计的网络节点,比如路由器,交换机之类的彻底可以减负了!光网络的波长路由与交换就是一个减负成功的例子,虽然到目前为止,这个例子还没有成为现实!
3.问题三:IP网络的路由问题
围绕着IP,越来越多的协议被设计出来了,这些协议越来越复杂,学习与管理的门槛越来越高,然而统一地想一下后发现,这些协议无非就是为了一个寻址问题,包括各式各样的动态路由协议,包括Policy routing的配置等等。按照OSI的分层模型,IP处于网络层,在TCP/IP(我一向将TCP/IP作为OSI模型的实例看待)模型下所有的流量都需要经过IP,这也难怪IP这么累了,最终这种累传递到了网管身上。
       这是不容更改的,我们不能破坏IP模型!混乱的根源在于策略的配置都是分布式的,你不可能一次性配置所有的路由器!这是唯一的问题!实际上,动态路由协议就是为了针对这个问题而被设计出来的,每一台路由器会学习到一张全网的拓扑(非距离矢量算法),然后根据这张地图来计算到达每一个目标的下一跳,如果哪里出了问题,网络会重新收敛到一张新的图,这一切看样子都很不错,是的!但是配置动态路由协议成了一个问题,即使你成功配置了它,如何在一个地点监控这张图也是一个问题,你只能完全信赖你配置的动态路由协议,相信它总能收敛到一个稳定的状态。
解决:
SDN的集中化控制使这个问题不再是个问题。SDN的控制节点操作的一张整图而不仅仅是一个节点和周边的局部,各个路由器(不再被叫做路由器,仅仅是一个转发节点)不再需要自己运行动态路由协议计算一张图,它只需要将自己的链路信息或者链路变化信息通过带外信道告诉SDN控制器即可,SDN控制器会计算出一张图,完全没有收敛的过程,并且整个计算,重新计算仅仅发生在SDN控制器,效率大大提高。SDN控制器会通过自己的计算结果来配置各个转发节点(以前叫做路由器或者交换机的东西)的转发表,并且可以随意加入任意的策略来实现Policy routing。
4.问题四:网络虚拟化问题
以往,如果我们需要规划多个IP网段又没有足够的设备时,不得不将所有这些网段都承载在一个以太网上,虽然协议是分层的,并且下层可以作为上层的复用点,但是实际上,由于以太网是一个广播网(其它的链路层也有它们自己的问题),对广播是不隔离的,诸多的IP网段还是没有实现完全的隔离。当然VLAN的引入解决了这个问题,然而你知道,这是靠增加一种新的技术来解决的,并且它也不是很简单,虽然符合加一个层解决问题的套路,但是要知道,网络的最终归宿是传输数据,在数据平面上层越少越好,增加一个层只能增加在控制平面上!如果使用VLAN,不可避免地需要改动原始数据包的格式。既然触动了数据包,就会影响到转发。
解决:
SDN对网络进行了横向的分割,在纵向的协议栈之外又添加了一个维度,在SDN定义的网络中,每一个网络都有一个ID,不同ID的网络在整个协议栈上都互不影响,SDN控制其发出的每个控制信令都携带一个ID,只针对属于该ID的网络进行定义和控制。如此一来,就可以将一个物理的网络隔离成多个虚拟的网络,要求每个设备都支持这种分割。如果看一下SDN的历史,就会发现,SDN正是学术上为了在现有网络上支持实验网络而不进行额外的投资而被提出的。
       最终这个横向分割是超级有意义的,至此,网络的定义更加合理了。纵向的协议栈负责数据转发平面,而横向的虚拟化支持负责控制平面,二者是正交的,不会互相依赖,控制平面和数据平面开放给对方的仅仅是查询等只读接口,不能修改对方的数据!
相关TAG标签
上一篇:Python对象的拷贝
下一篇:MSSQL OVER函数使用
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站