InfoQ

新闻

关注于下一代网络的Windows 2008

作者 王翔(Vision Wang) 发布于 2007年11月10日 下午1时33分

社区
Architecture
主题
操作系统
标签
微软

在各种繁富的Web应用之上,人们似乎对诸如Socket、ICMP等一系列传统意义上的“网络”开发渐渐淡忘。但随着富客户端应用、多核技术和IP V6 & IP V4混合时代的到来,如何充分利用网络继P2P之后设计下一代网络应用成为新的挑战,适时与此,微软在Windows 2008的网络协议栈和网络接口上已经作了很多调整。

随着处理器多核技术的推出,平台软件似乎也在向着双核、甚至多核的方向发展。05年,各数据库厂商分别提供了面向XML和关系的混合数据库引擎,而06年开始各操作系统厂商也开始在产品中增加IP V4 & V6 TCP/IP协议统一API的支持,Windows 2008作为即将发布的下一代系统也提供了双TCP / IP协议栈支持。下图是Windows 2008中的栈结构:

不难看出,其中IP层被两个并行的体系实现,区别于Windows 2003和Windows XP两个完全独立的协议栈不同,Windows 2008的栈除IP层以外是一套统一的整体,因此开发人员无须自己再隔离一个协议无关层。这么做最大的一个好处在于帮助应用设计者更好的适应正在升级的TCP/IP环境,毕竟世界被拉平之后,我们的用户可能位于网络实施条件较好的北美、西欧和亚太地区,但也可能位于黑色大陆和南美,此外随着创新型网络应用技术的出现,信道部分的路由情况也会更加动态,因此采用增加了动态路由试探的统一双堆栈基础上的统一API,可以大大简化架构师设计应用底层通信机制的工作。

另外,以往Windows 2000、Windows XP平台上普遍使用的用于开发网络核心态驱动的TDI(Transport Driver Interface)网络访问API也被建议切换到WSK(Winsock Kerne),原因是它是完全Native面向Windows新TCP/IP栈设计的接口,隔离了IP V4 & V6 TCP/IP之外,还将各种监控、信息筛选、网络设备负载动态调整等功能作了封装,无需开发人员另外实现类似特性支持。

(比较类似COM+对COM技术的封装,除了实现组件二进制重用外,还提供了远程调用、基于角色的安全性、监控、池化等能力,而COM+的开发人员只需用COM+新的接口实现COM对象的功能逻辑部分即可,尤其用Visual Basic开发的COM+更是如此。)

新增的“接收窗口自动调整”和“接收端负载均衡”(RSS:receive-side scaling)特性,也为更充分使用服务器资源提供便利。前者可以根据网络情况以类似“变形金刚”的方式(在畅通路段采用大货车方式、在拥堵路段采用“甲壳虫”方式)提交网络请求;后者则是面向以往操作系统网络协议栈计算的诟病——“网络协议栈的计算往往集中在一个处理器上(/一个核上),即便技术发展到服务器可以安装多个处理器、每个处理器也多核的时代之后,还主要继续让一个核担当过重的网络计算,而其他核闲置”。

相关赞助商

Unix体验中心的目标是为研究、学习和使用各种版本的Unix和类Unix操作系统的技术人员提供的一个线上交流平台,包含翔实的OpenSolaris学习资料。

没有回复

回复

独家内容

世界顶尖运动队教练的成功秘诀

本文列出了来自于顶级教练Marc Lammers的9条原则,他是在打造世界最佳曲棍球队的过程中发现这些原则的,文章把这些原则映射到了软件开发实践之中。

探索JVM上的LISP

本文由Per Jacobsson所作,目标读者为有意了解Lisp的Java开发人员。文章探讨了当前可以运行于JVM上的不同Lisp方言,以明快简洁的方式介绍了Lisp程序设计工作机理和其独特之处,并在最后演示了Lisp代码同Java系统的整合过程。

Ruby/Rails: 不一样的'Web'应用

本文以一个实际应用的例子为引子,探讨Ruby/Rails在非传统web系统中应用,以及研究如何定制以Rails为基础的领域特定的MVC框架。

认识云计算

本视频对云计算进行了简要的介绍,主要包括了五部分内容:首先带大家认识“云”,然后对计算机的发展过程进行了阐述,接着介绍了业界现状和企业级/世界级计算的新布局,最后对云计算做了一下展望。

AtomServer:数据分发的发布动力

在这篇文章中,Bryon Jacob和Chris Berry介绍了AtomServer,一个基于Apache Abdera的完整Atom存储实现。在去年,作者一直致力于为其雇主——Homeaway——实现一个Atom存储,现在已开源了其Atom存储框架:AtomServer。

从卓越工程角度看微软中国开发团队的成长

开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。

利用Ruby简化你的Java测试

本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。

与赵进聊SaaS

InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。