论文部分内容阅读
TCP使用一种特定的算法来控制其行为,我们改变不了算法,但可以灵活应变、更高效地使用算法。
使用HTTP的Web会话、文件传输、文件共享和系统备份通常使用TCP,系统启动时装入的Windows桌面配置同样基于TCP,可以说,与互联网相关的绝大部分数据是由传输控制协议(TCP)承载的。
然而,如果系统备份到距离相当远的远程站点,那么实际使用的带宽可能只有所购带宽的一小部分。比如,监控摄像头将视频传输到远程录像机或者使用无线连接的录像机时,这个传输过程可能缓慢或受到干扰。
造成TCP性能糟糕主要有网络时延和网络中断两个原因。TCP被设计成可重新传输丢失的数据段,但数据段可能会延迟传输。在线路很长的情况下,TCP必须限制传输速率,以免接收端的缓冲区应接不暇。
由于大多数网络分析工具只告诉我们遇到了TCP性能问题,但并不会告知为何会发生,这类工具也没有建议采取何种可行的纠正措施,这使问题变得更严重。
在更深入地探究这个问题之前,不妨看一下有助于改善TCP性能的几个技巧。TCP使用一种特定的算法来控制其行为,我们改变不了算法,但可以灵活应变,以便更高效地使用算法。
技巧1 加大缓冲区
减小网络中导致数据包丢失的出错可能性。无线通信很容易出现错误,那些错误通常是网络操作人员看不见的。咨询网络设备厂商,确保路由器和交换机的缓冲区大于传统的64k字节,64k字节在早期的无线设备中很常见。现代的TCP版本传输的数据段比64k缓冲区的数据容纳量大得多。
技巧2 缩短线路
确保网络线路尽量短。从纽约备份到费城要比从纽约备份到丹佛或备份到伦敦快速得多,即使可用带宽和终端系统都一样。这种情况下,内容分发网络(CND)提供商可以提供帮助。他们将内容放到更靠近用户的地方,因而缩短了网络时延,提高了分发性能。
技巧3 考虑使用HTTP管线化
如果某任务(比如批量文件传输)可以分成两个或多个TCP会话,然后同时传输,那么可用带宽能得到更高效的利用,这就是HTTP管线化(HTTP pipelining)的原理。
技巧4 更新堆栈
尽可能使用最新的TCP堆栈。新版本的TCP工作起来效果远胜过旧版本。比如说,Windows XP使用通常被称为New Reno的TCP版本,而Windows 7/8使用名为Compound TCP的较新版本。这个版本对数据段丢失有更好的控制,还有另外几处变化,有助于提升其性能。如果你是Linux用户,就要确保版本至少是2.3.13,其性能类似Compound TCP的性能。
技巧5 使用数据包分析仪
确保企业中至少有一人懂得如何使用数据分析仪,此人能够明白客户机和服务器在约定TCP中使用一些较新的选项。其中一些选项是选择性确认(SACK)、窗口缩放和快速传输。虽然分析仪无法告知这些选项为何很重要,但它会证实它们已使用。这将表明两头终端系统可能都使用了较新的TCP堆栈。
另外,我们可以在有限的程度上改变算法。比如说,微软网站上的一些研究披露,企业IT管理人员可以改变TCP堆栈中的一些参数。大多数研究认为,Cubic TCP在这两个因素方面都比New Reno或Compound TCP更胜一筹。Compound TCP的表现通常比New Reno TCP要好一点。
使用HTTP的Web会话、文件传输、文件共享和系统备份通常使用TCP,系统启动时装入的Windows桌面配置同样基于TCP,可以说,与互联网相关的绝大部分数据是由传输控制协议(TCP)承载的。
然而,如果系统备份到距离相当远的远程站点,那么实际使用的带宽可能只有所购带宽的一小部分。比如,监控摄像头将视频传输到远程录像机或者使用无线连接的录像机时,这个传输过程可能缓慢或受到干扰。
造成TCP性能糟糕主要有网络时延和网络中断两个原因。TCP被设计成可重新传输丢失的数据段,但数据段可能会延迟传输。在线路很长的情况下,TCP必须限制传输速率,以免接收端的缓冲区应接不暇。
由于大多数网络分析工具只告诉我们遇到了TCP性能问题,但并不会告知为何会发生,这类工具也没有建议采取何种可行的纠正措施,这使问题变得更严重。
在更深入地探究这个问题之前,不妨看一下有助于改善TCP性能的几个技巧。TCP使用一种特定的算法来控制其行为,我们改变不了算法,但可以灵活应变,以便更高效地使用算法。
技巧1 加大缓冲区
减小网络中导致数据包丢失的出错可能性。无线通信很容易出现错误,那些错误通常是网络操作人员看不见的。咨询网络设备厂商,确保路由器和交换机的缓冲区大于传统的64k字节,64k字节在早期的无线设备中很常见。现代的TCP版本传输的数据段比64k缓冲区的数据容纳量大得多。
技巧2 缩短线路
确保网络线路尽量短。从纽约备份到费城要比从纽约备份到丹佛或备份到伦敦快速得多,即使可用带宽和终端系统都一样。这种情况下,内容分发网络(CND)提供商可以提供帮助。他们将内容放到更靠近用户的地方,因而缩短了网络时延,提高了分发性能。
技巧3 考虑使用HTTP管线化
如果某任务(比如批量文件传输)可以分成两个或多个TCP会话,然后同时传输,那么可用带宽能得到更高效的利用,这就是HTTP管线化(HTTP pipelining)的原理。
技巧4 更新堆栈
尽可能使用最新的TCP堆栈。新版本的TCP工作起来效果远胜过旧版本。比如说,Windows XP使用通常被称为New Reno的TCP版本,而Windows 7/8使用名为Compound TCP的较新版本。这个版本对数据段丢失有更好的控制,还有另外几处变化,有助于提升其性能。如果你是Linux用户,就要确保版本至少是2.3.13,其性能类似Compound TCP的性能。
技巧5 使用数据包分析仪
确保企业中至少有一人懂得如何使用数据分析仪,此人能够明白客户机和服务器在约定TCP中使用一些较新的选项。其中一些选项是选择性确认(SACK)、窗口缩放和快速传输。虽然分析仪无法告知这些选项为何很重要,但它会证实它们已使用。这将表明两头终端系统可能都使用了较新的TCP堆栈。
另外,我们可以在有限的程度上改变算法。比如说,微软网站上的一些研究披露,企业IT管理人员可以改变TCP堆栈中的一些参数。大多数研究认为,Cubic TCP在这两个因素方面都比New Reno或Compound TCP更胜一筹。Compound TCP的表现通常比New Reno TCP要好一点。