【TechTarget中国原创】正如我们之前在《WAN优化基础》中探讨的,很多现有的支持重要的内部和外部业务功能的协议都在有限范围和可扩展性中操作。这些几乎都是基于LAN传统协议,它们可能会对大规模WAN造成很大的性能影响。例如,通用Internet文件系统(Common Internet Files System,CIFS),在WAN连接中会变得极难使用。同样,实时流和语音协议往往需要引入流量控制(Traffic Shaping)。事实上,网络流量中应用了许多控制,以便优化性能、满足性能要求或增加可用带宽,这通常是延迟一些相对延迟不敏感或满足某种分类规则并被标记作为低优先级的流量来实现的。流量控制往往用以向用户提供符合要求的语音和视频服务,而对其它协议则仍然使用“正常网络连接”进行处理。
同样地,加密和安全协议加速工具也成为资源密集型的,但它是完全必需的负载,尤其是当敏感流量必须在因特网连接传输时。即使是因特网上最广泛应用的协议——即HTTP——也可被描述为过密的(涉及频繁通信)和拥挤的(涉及在多数时间里都有几十上百资源请求在同一时间穿越网络)。图3.3所显示的是一个Web网页的访问,其中包括短时间内的大量元素的信息进出交换(以下显示示例追踪的其中12条记录,另外更多的记录没有显示)。

图3.3:一个Web页面访问可能产生几十上百的HTTP“Get”请求和相应的数据中转回复。
修复这些网络环境的“问题”方面已经成为网络工程的一个主题了,它要求考虑的不仅仅是应用本身,通常还包括应用的编程问题。了解应用的操作、协议格式和参数,以及可观察的运行时行为对于了解应用是如何配合网络上的其他应用、服务和协议是至关重要的。这不仅仅是关于修补个别部分的打补丁的问题,相反它要求的是实现有效WAN通信的最佳实践:尽可能少地以整个批和整个事务的方式发送和接收数据。
TCP格式最初是设计用来实现在不考虑传输速率、固有延迟、协议冲突、数据重复和片断重排序等情况的不可靠媒体传输的可靠性。因此,TCP实际上是一个健壮且可靠的传输应用、服务和协议的机制。但是,当部署在现代更高速媒体网络时,这种设计在TCP实施时就暴露出其固有的缺点,因为这种网络完全超出TCP原设计的使用条件。
WAN优化解决方案就是包括对这些和其它的“问题”网络协议的再工程,通常是通过某种代理形式实现的。这种代理允许不受约束的协议行为,因此协议可以在LAN上正常运行并且不受阻碍。但是这个代理同时也转化和典型地重新包装面向LAN的传输,以减少或消除WAN连接的“不必要的干扰”,同时它也限制单个传输数并将发生的WAN传输负载最大化。当传输的请求和回复穿越WAN链路时,这种方法可以最大化了可用带宽的使用。
IP是盲目地发送数据包而不检查它们是否到达;而TCP会保持从会话创建到消除阶段进行的端对端连接,甚至还要求周期性确认数据的接收。未确认的数据会触发一个指数回退算法,它会中止当前连接并重试传输直到它们被接收和确认,或超时后发出连接失败信号。TCP滑动窗口大小——这些表示在接收到要求的确认信息之前可以发送的数据包数量——直接影响到性能,其中较大的值会带来较大的吞吐量(但是,也会造成更长的延迟时间)。
TCP采用一个定义完好的“慢启动”算法,它先用一个小的窗口大小来初始化通信,然后在连接建立和连接激活时缩放TCP窗口大小以获取最佳比例。所有这些和其它类似的TCP/IP栈过程都会带来网络延迟,这些都是在WAN优化解决方案中通过连接优化技术和主动的窗口处理方法来解决的。
关于TCP窗口大小、慢启动算法和其他TCP拥塞管理技术的精彩探讨,可以查阅Charles Kozierok的优秀图书The TCP/IP Guide。该书可以在线全文阅读,TCP Reliability and Flow Control Features and Protocol Modifications部分详细探讨了TCP窗口管理、窗口大小调节、拥塞控制和拥塞避免机制。