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

标签: 网络技术 独立 导火索 | 发表时间:2013-05-30 21:33 | 作者:dog250
出处:http://blog.csdn.net
网络技术就是电脑技术么?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正是学术上为了在现有网络上支持实验网络而不进行额外的投资而被提出的。
       最终这个横向分割是超级有意义的,至此,网络的定义更加合理了。纵向的协议栈负责数据转发平面,而横向的虚拟化支持负责控制平面,二者是正交的,不会互相依赖,控制平面和数据平面开放给对方的仅仅是查询等只读接口,不能修改对方的数据!

结论:网络技术应该从电脑技术中独立

如果参加过Cisco的培训,就会知道,如果想丢弃一个数据包,尽量在inbond处,说是这样比较节省设备的计算资源,还有许多类似的这种技巧,为什么会有这种技巧,就是因为IP是局部化的,所有设备的配置大家各自为政!到了SDN时代,事情起了变化!所有的这些增加复杂性的小技巧都不需要了...SDN的特点就是集中化控制,分离的控制可定制!在这个核心思想的基础上,带来的巨大效益是:网络管理简单化,网络监控简单化,网络可快速扩展延伸,网络安全策略实施同质化!由此,网络在云时代真的就成了一个带有控制和自定义功能的简单的仅提供透明比特管道的基础设施,将更多的资金和人力资源留给应用和业务。SDN时代的网络再也不是电脑的衍生和延伸,它获得了独立!
       其实,George Gilder这位电信泡沫后被误解的人早就预示了SDN时代的到来,只是当时人们不知道叫SDN而已,网络技术从电脑技术中独立是迟早的事,George Gilder在20世纪90年代初感知了PC革命,接下来的10年网络仅仅处在发展期,处在巅峰的PC技术深刻影响着网络技术,于是各种路由器,交换机都做得和PC一样,按照PC/服务器的操作方式,UI来设计网络设备,加上Linux这个诞生于网络的PC/网络融合主推手,人们一度认为网络就是电脑,很多人觉得网络高手就是玩转Linux,玩转Cisco的人(事实上也真的是那样),人们会认为每一个路由器,交换机在硬件上都绘有一个CPU,在软件上都会有一个操作系统,而且很多都是要么从UNIX,要么从Linux衍生出来的,不幸的是,人们已经掉进了电脑的圈子。PC当年在美国嬉皮士文化中脱颖而出,彻底和大型机分道扬镳,历时20载,如今网络技术正在重演当年的大戏,不幸的是,George Gilder老大对此的预知过于早熟了,仅仅在他对PC的产业价值作出肯定的评价10年后,也就是2000年左右,George Gilder就出版了《Telecosm: How Infinite Bandwidth will Revolutionize Our Worl 》一书,该书像当年的《论法的精神》,《社会契约论》一样,马上让华尔街那帮跟风者蠢蠢欲动,终于酿成了悲剧。正如1789年的人们不会理解拿破仑的行为一样,过于早熟的理论在无知者面前,大家能做的就是蠢动和跟风。然而现在,这个时期过去了吗?网络技术可以独立了么?
《Telecosm: How Infinite Bandwidth will Revolutionize Our Worl 》这本书,我在淘宝上找到了,仅此一本,我买了就下架了,马上就到货了。
作者:dog250 发表于2013-5-30 21:33:39 原文链接
阅读:82 评论:1 查看评论

相关 [网络技术 独立 导火索] 推荐:

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

- - CSDN博客云计算推荐文章
CPU和操作系统已经牢牢占有了PC,服务器的领地,每个PC,服务器上都会有一个或者多个CPU,都会跑一个OS,甚至如今的手持设备也被灌入了PC的影子,实则一个缩小版的PC,当年的类似单片机的射频终端彻底败阵. 手持设备向电脑技术投降是有道理的,因此电脑和手持设备都是无穷无尽的应用来推动的,但是如果有一天物联网深入我们的生活,我害怕肉眼看不到的电子灰尘里面也会跑一个精简版的Linux.

CDN(内容分发网络)技术原理

- - 博客 - 伯乐在线
Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰. 解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证.

弯曲出品--罗依 (Roy)。《云计算数据中心网络技术》(PDF)

- wuwu - 弯曲评论

Google 基于 HTML 5 打造的网络技术读物有了中文版

- Phineux - cnBeta.COM
Google在去年年底发布了一个技术型网站:20 Things I Learned About Browsers & The Web(我从浏览器和网络里学到的20件事儿),利用HTML 5介绍HTML 5的知识. 今天,Google推出了此书的中文版(其实一共有15种语言,可在网站的下拉条里切换),同时还开放了源代码.

独立日游行

- 躲在街角的猫 - 南桥的博客

Google 基于 HTML 5 打造的网络技术读物有了中文版并开源

- syeye - 谷奥——探寻谷歌的奥秘
Google在去年年底发布了一个技术型网站:20 Things I Learned About Browsers & The Web(我从浏览器和网络里学到的20件事儿),利用HTML 5介绍HTML 5的知识. 今天,Google推出了此书的中文版(其实一共有15种语言,可在网站的下拉条里切换),同时还开放了源代码.

微软宣布其所有语音翻译服务已全部使用深层神经网络技术

- - 微软亚洲研究院
近日,在 微软Connect();//2016大会上,Microsoft Translator宣布所有微软语音翻译服务已全部使用最先进的深层神经网络技术,其中,包括如 Skype Translator实时语音翻译和Microsoft Translator移动端应用等使用微软语音翻译服务的应用程序.

什么是独立游戏?

- 戈饭 - 独立领域
我本来想把百度百科里关于“独立游戏”的释义复制到上来,不过这就不是没有意义了吗. 与其复制百度百科别人编写好的词条,还不如给个链接大家自己去看. 所以,传送门在这里:http://baike.baidu.com/view/671225.htm. 我还是谈谈自己对独立游戏的理解吧. 所谓独立游戏呢,其实就是区别于商业模式的游戏的另一种游戏创作.

独立博客未死

- 可可 - 望月的博客
Nings 的一篇博客之尾引来无数共鸣,一时间,关于博客尤其是独立博客式微的言论甚嚣尘上,似乎独立博客的末路已经来临了. 在我看来,独立博客未死,岂知未死,还活得挺好的,只不过,我们总是以一些自以为是的观念强加给博客罢了. 在几乎所有谈及博客式微的言论中,都会把微博客拿出来说事,说微博的用户数怎样怎样,反之,博客又如何如何,于是就得出了同一个结论.

Mozilla将开发独立操作系统

- ccyuling - Solidot
Mozilla宣布了一个新项目“Boot to Gecko”,旨在为开放互联网开发一种完整独立的操作系统,成为ChromeOS或Android的某种竞争对手. 源代码将发布在Github上(暂时只有README). Mozilla此举是为了推广开放Web技术,Boot to Gecko针对的不是笔记本,而是智能手机,为Android兼容设备提供基质.