传输控制协议(TCP)承载了公共网络和专用内部网络的绝大多数的数据传输。Web所使用的HTTP、文件传输、文件共享和系统备份通常都是使用TCP。Windows桌面配置在启动加载时就是基于TCP。
然而,如果您企业的系统是备份到远程站点,而且是到一个相当远的距离,那么您企业可能仅仅只使用了您所购买的带宽的非常一小部分。当您企业的安全摄像机采用远程或是使用无线连接的网络传输视频录像时,视频录像的数据会传输得非常减缓或发生传输中断。
TCP性能差主要有两大原因:显著的网络延迟和网络损耗。的确,TCP已被重新设计以重新传输丢失的数据段,但其很可能会被推迟。在很长的电路的情况下,更高的延迟所导致的结果使TCP必须限制其传输速率,以便使其不会超出接收器的缓冲区。
而由于大多数网络分析工具能够告诉企业其TCP存在性能问题,但却无法解释这些问题为什么会发生,进而使得上述问题进一步加剧。鉴于此,业界是否有相关纠正措施方面的建议呢。
在我们对该问题进行深入挖掘之前,或许我们可以来分析一下哪些方法可以帮助企业提高TCP性能。我们必须牢记,TCP有一套特定的算法,控制其行为。我们无法改变该算法,但我们可以适应该算法,以便更有效地利用该算法。
1、增加缓冲区
我们需要尽量减少因网络错误所导致的丢包的可能性。请务必记住,无线通信是容易出现错误的,这些错误通常是网络运营商看不见的。故而您需要与您企业的网络设备供应商沟通,以确保路由器和交换机的缓冲区大于传统的64K字节,这在早期的无线设备中是常见的。现代的TCP部署传输远远超过了64K字节的缓冲区可以容纳的数据组段。
2、缩短网络通信线路
我们必须保持让网络通信线路尽可能的短,这无疑是非常良好的商业惯例。从纽约到费城的备份绝对远远快于从纽约到丹佛或纽约到伦敦的备份,即使可用的带宽和终端系统是相同的。在这种情况下,内容分发网络(CDN)供应商就能够提供非常显著的优势。他们能够让内容更贴近用户,减少网络延迟,提高传输性能。
3、考虑HTTP 流水线技术
如果一项任务,如文件传送,可以同时分离成两个或更多的TCP 连接数(TCP sessions)和转移,可用带宽的使用将更加有效。这便是HTTP流水线技术(HTTP pipelining)背后的理念。Netflix网络电视的许多客户就是采用这种方法来迅速实现电视播放缓冲。
4、更新您企业的堆栈
我们应该尽可能的使用***的TCP堆栈。***部署的TCP要比旧版本要好得多。例如,使用Windows XP系统使用的是通常被称为New Reno的TCP版本。而Windows 7/ 8则使用的是较新的版本的称为复合TCP。这个版本对于字段损失和其他一些变化有更好的反应,有助于提高其性能。如果您是一个Linux用户,确保您所使用的版本至少是2.3.13。其TCP的部署版本被称为Cubic。据研究人员称,其性能类似于复合TCP。
5、使用数据包分析器
请务必确保您企业内部至少有一个人知道如何使用数据包分析器。他们将能够看到,客户端和服务器协商使用TCP中的一些较新的选项。其中一些是选择性确认(SACK),窗口缩放和快速传输。尽管分析仪不会告诉您为什么这些是重要的,但其会证明他们是被使用的。这将可能指向在两端的系统较新的TCP协议栈。
通过上述五大要点的介绍,我们并不想给读者留下我们不能直接改变TCP算法的印象。我们可以在有限的范围内进行改变。例如,在微软网站上的一些研究表明,我们可以改变TCP协议栈的一些参数。
然而,我们认为这样所导致的问题会和其所能够解决的问题一样多,特别是如果我们没有时间在即那个其投入正式生产之前仔细试验其变化的情况下。我们所建议的以上步骤是安全的,可以为企业带来显著的好处。
HTTP如何发挥作用
由于浏览器的大量使用,HTTP协议也发生了一些变化,影响其吞吐量。两大最为显著的特点便是持久连接和流水线技术。几乎所有的HTTP传输均是通过TCP。建立一个连接到一个单一的HTTP获得请求所需要的时间往往是整个TCP连接时间的一个重要部分,已然相当明显。
当考虑到一个典型的网页检索通常会涉及到包括50-100个人“获得”请求的这一现实情况,而且如果每个请求均发生在一个单独的TCP会话,无疑会是浪费相当长的时间,而这原来是在HTTP 1.0规范中完成的。
该问题的解决方案就是保持持续的连接,在HTTP 1.1中实现。如果我们通过解决多个“获得”请求的能力加倍这种行为,而在流水线技术无需等待对每个请求必须得到满足,我们可以显著改善HTTP的性能。而我们从HTTP中学到的教训同样适用于TCP。更新浏览器。***的版本的运行是***的。
当前,大量的研究都集中在这些新的TCP版本中,哪一款版本的性能更好。总结所有这些研究是一项艰巨的任务,但我们可以大致的进行一些概括。在这些研究中,经常性被考虑的包括两件事情:该版本的TCP到底有多有效;其处理预期竞争的其他流量的公平性如何?大多数研究对于Cubic 版本的TCP在这两方面的评价均高于其他两个版本的TCP(New Reno或复合TCP)。通常复合TCP的性能要优于New Reno TCP。但是,鉴于我们越来越多的从我们的移动设备上使用网络,如果我们看到TCP进一步演变,以满足无线运营商的需求时,请不要感到惊讶。