在windows server 2008中,出现了全新设计的新版TCP/IP通信协议堆栈,被称为“下一代TCP/IP堆栈”,通过“下一代TCP/IP堆栈”的使用,大幅提高网络连接的性能。在下面的时间里,为大家介绍关于“下一代TCP/IP堆栈”的增强性能的部分。
接收窗口自动调节
      TCP Receive window :TCP接收窗口;指TCP连接中,作为接收的主机用来储存发送过来数据的内存缓冲。例如,当朋友邮寄过来一个包裹之后,邮递员会放入你们家门前的邮筒中,当你发现邮筒中有东西,会去接收这些包裹。但如果邮递员放入的包括太大,而你接收的又太慢,就造成发送端发送过多,接收端无法存储的信息。在以前的TCP/IP堆栈中,计算机会将自己剩余邮筒的大小告知对方,让对方只发送剩余大小的量。这种做法有时候就会造成邮递员(网络带宽)的轻松,有一次可能只需要他拿很小的包裹就可以了。这就造成了网络带宽的浪费。在windows server 2008中的“下一代TCP/IP堆栈”中,使用接收窗口自动调节的功能,根据网络带宽的使用状况来调节TCP Receive window的大小。通过接收窗口自动调节功能来提高传输性能,也同时提高了网络的整体利用率,使其QoS(服务质量)更符合需求。
复合TCP
      在TCP连接中,出现丢包的现象之后,传送端降低发送窗口的大小,然后重新传输。目前通过“slow start”(慢启动)“congestion avoidance”两种算法来避免丢包的现象。这种方法在经过广域网的两个服务器进行传输的时候,将无法满足充分使用带宽的需求。在windows server 2008中的“下一代堆栈”中的复合TCP(CTCP)功能,通过大的TCP Receive Window 和大的“带宽延迟乘积”来监控丢包的状况,并且尽力增加每次传输的信息量。
      默认情况下windows server 2008是不启用的,通过netsh命令可以启动
启动CTCP         netsh interface tcp set global congestionprovider=ctcp
停用CTCP         netsh interface tcp set global congestionprovider=none
用于频繁丢失的增强功能(ECN)
      在一个TCP连接中,当发生丢包的现象之后,会启动“拥塞控制”机制,这样就会降低传送端的传输速率。通过ECN功能,拥塞状态下的路由器会在转发包时在IP头部加上2位的ECN bits。当接收端接收到之后,会降低自己的传输速率来减轻网络拥塞状况,并防止数据段的丢失。windows server 2008中也需要通过netsh命令启动它。
netsh interface tcp set global ecncapability=enabled
用于IPv4的邻居无法访问检测
      邻居的无法访问检测本事IPv6的一项功能,通过此功能检测相邻节点是否能够访问,并提供错误检测和恢复。在“下一代TCP/IP堆栈”中,通过跟踪IPv4路由缓存中的可访问状态,也支持对IPv4的邻居无法访问检测。
故障网关检测转换
      在网络中我们设计两个网关。当具有高网络流量吞吐量的主路由器down掉之后,使用吞吐量低的备用路由器工作,但这会影响使用性能,即使主路由器恢复,也不会在使用,因为子网中的主机已经认定了备用的路由器。虽然我们的首选网关地址没有改动。在windows server 2008的“下一代TCP/IP堆栈”中,使用故障网关检测,当具有高网络流量吞吐量的主路由器恢复之后,会将默认网管切换到此路由器上,重新支持高网络流量的传输。