关注于下一代网络的Windows 2008

在各种繁富的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中的栈结构:

关注于下一代网络的Windows 2008_第1张图片

不难看出,其中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)特性,也为更充分使用服务器资源提供便利。前者可以根据网络情况以类似“变形金刚”的方式(在畅通路段采用大货车方式、在拥堵路段采用“甲壳虫”方式)提交网络请求;后者则是面向以往操作系统网络协议栈计算的诟病——“网络协议栈的计算往往集中在一个处理器上(/一个核上),即便技术发展到服务器可以安装多个处理器、每个处理器也多核的时代之后,还主要继续让一个核担当过重的网络计算,而其他核闲置”。

你可能感兴趣的:(关注于下一代网络的Windows 2008)