在经过二十多年的发展后,TCP/IP协议早已不适应现在的网络环境和复杂应用。针对协议优化,各路厂商各出奇招,在自己擅长的领域里力求补牢TCP/IP。
年关将至,返乡大军又开始了艰难的回家之旅,不仅买票的过程异常波折,连回家也显得格外拥挤,一些短途的黑车甚至趁机抬价,这些都增添了身处异地的亲人团聚的难度。而他们平时就工作和生活在自己的城市里,不大会遇到这样的问题。
这样的情形很像今天局域网和广域网上的状态,虽然广域网的带宽已经增加了不少,但客户端响应时间长和数据传输速度慢的问题仍然十分紧迫,这在很大程度上跟网络传输的底层协议相关,也就是TCP/IP。
长肥网络——环境的演进
TCP/IP在网络行业拥有至高无上的地位,在OSI七层模型中居于网络层和传输层最核心的位置,类似于《TCP/IP协议详解》这样的经典书籍也是一个网络工作者最基础的入门课程。然而,经过二十多年(TCP/IP协议诞生于1983年)的发展,TCP/IP也面临很多问题,原有的协议栈和传输机制同现有的网络环境越来越格格不入,其中最具代表性也是TCP/IP最难适应的就是所谓的长肥网络(LFN,意指长距离广域网、高带宽的网络环境)。
作为传输控制协议,在实验室低速网络环境下诞生的TCP/IP协议,在设计初期只是为了保证数据在链路上的可靠传输,其余的问题基本都没有考虑。如今长肥网络广泛存在于实际环境中,TCP协议的滑动窗口,重传和恢复等机制(在此不做详细探讨)使得广域网的传输效率急剧下降;而随着广域网的链路速率日益提高,原本TCP的窗口尺寸、慢启动等机制也无法充分利用网络带宽。“一些企业因为远程访问数据中心速度慢而扩容广域网带宽,但是TCP协议本身的限制,扩容后用户没有感受到与带宽提升相应的速度提高。”Blue Coat中国区产品市场经理申强表示。
Riverbed大中华区产品市场总监丁伟谈到广域网传输瓶颈时说,由于物理距离的局限,广域网上的时延是不可避免的,一个T3链路(45Mbps)的时延超过40ms(且TCP窗口较小)时,数据传输能力很快下降到与T1链路(1.544Mbps)相差无几的水平上。
F5中国区技术总监吴静涛特别指出TCP/IP的容错传输机制问题:“在延迟很小的网络上TCP校验包可以忽略不计,但几千公里出去,很可能就是几百毫秒的延迟(中国的网络压力比较大,这种情况很常见),可能光等校验包的累计时间就要用分钟来计算,这种延迟在广域网上无疑是致命的。”
在网络环境变化的同时,应用复杂度也疾速提升。在早期客户端多为C/S架构时,一个TCP连接就对应一个应用,类似于慢启动、窗口递增和丢包减半等机制的效率还是很高的。但如今用户更关注的往往是应用层的交易(而不是连接),且大部分应用已经B/S化,一次交易对应很多Web对象的访问和多次的TCP连接,给服务器端带来极大的性能压力。
北京邮电大学网络技术研究院教授,信息网络中心主任马严则指出,TCP在无线领域也不是太适应,原有协议对丢包和抖动并不是非常关心,在抗干扰能力、多径效应、丢包参数控制等方面,TCP有很大的改进余地。
广域网优化——TCP的修补
实际上,业界对于TCP/IP协议的各种修补和优化时间也不算短了,还诞生了不少专门做这件事情的公司,而对于传统的网络厂商来说,也通过一些QoS的办法尽量弥补TCP不足。
神州数码网络有限公司产品经理陈智勇告诉我们,目前在底层(相对于应用层)上通常采用的办法是在遵循原有协议的基础上,通过对硬件和代码层面上的改动(如提高查表速度,ARP刷新速度、防护ARP攻击等)提高网络设备的性能。
以状态监测防火墙为例,设备必须记录每条信息的状态,其并发的TCP连接可能达到上百万个,复杂应用甚至达到上千万个,对CPU的计算能力影响非常大。于是人们想出了不同的解决方案:如AISC将查表的过程放在硬件的芯片或电路上来做,或者采用NP的方式针对三层路由提升性能,但这些手段或者不够灵活,或者无法实现高层TCP会话重组等功能。目前在一些高端应用上更多采用的办法是“多核+FPGA”的路子,既可以解决计算能力,又能够实时编程。
另外,在以硬件产品提升性能的基础上,针对城域网/教育网/园区网等环境,神州数码还在带宽最小的出口链路上实施QoS,通过协议/应用的识别进而实现优化,保障重要应用(时延敏感的应用)的带宽和优先级。“这种方式没有对协议栈进行任何干扰,更为实际一些。” 陈智勇表示,“如果通过协议干扰的方式,一旦识别出错,就会影响正常用户应用,这个风险是很大的。”
实际上,有很多网络优化厂商也都实现了针对TCP流量分类和速率控制上的QoS优化。申强表示,“用户需要在网络上界定每一个数据是什么,使用效果怎么样,但TCP自身缺乏服务质量和信令控制,其提供的端口信息在很多情况下已经没有任何作用了。”
对此,Blue Coat通过在去年收购Packeteer进一步完善了其应用交付解决方案,通过综合分析应用层和网络层信息,从相同的TCP端口中真正区分出每个应用。另外,在做控制时改变了传统队列机制加TCP丢包去做拥塞控制的低效率方式,利用TCP本身流控能力,去把每个应用平稳地约束在所在带宽上,不会有拥塞也不会有丢包。
从应用层角度出发,包括Blue Coat、F5、Riverbed等公司在内的优化厂商经常采用一种类似于“协议欺骗”的方法实现优化。具体来说,通过在服务器和客户端分别放置代理设备,构建代理设备与服务器的局域网连接环境,由代理设备代替客户端进行TCP校验的交互,极大地节省了广域网链路上的延迟累计时间;同时,在面向广域网的一侧,代理设备往往通过改进的TCP/IP协议进一步优化传输效果,不仅降低了服务器负载,还优化了应用,提高了用户体验。
而针对大量TCP连接对服务器资源的占用问题,吴静涛表示,通过One Connect和TCP Express等连接优化手段可以释放服务器压力。F5的广域网优化设备可以直接实现TCP连接的优化,例如外部用户发起的1万个连接,经过设备以后可合并成100个甚至更少的长连接到服务器,帮用户免费节省30%左右的服务器压力。此外,当客户端很慢的时候,还可以先将服务器的回应包缓存在设备内,尽快结束和服务器的连接,再由优化设备慢慢将服务器回应传输给客户端,这样也可以降低服务器的在线连接,更好的发挥服务器能力(一般在服务器端实现,与客户端无关,大型应用上比较多)。
此外,吴静涛还特别提到对复杂应用的TCP优化:复杂应用的用户会话一般由多个TCP(甚至是UDP)连接组成,在多个连接间存在相互关联关系,在大的服务集群中,如果不能通过辅助处理将这些关联的连接标识,并交由一个集群节点服务,就会出现访问故障。例如用户的注册和访问必须在同一集群节点,如果将注册和访问的两个不同的TCP连接分配到不同的集群节点,访问失败是必然的。如何判断这些不同的TCP联机是否关联,或是否由一个用户发起是和应用相关的,比如HTTP协议可以用Cookie或会话ID,而移动用户可以用Calling ID或手机号码,而这些处理方法都是TCP协议没有涵盖的,需要高层协议或其他设备的支持。
丁伟则重点强调了在协议加速和应用层代理基础上针对用户原始数据的优化,这也是Riverbed在广域网优化方面比较有特色的地方。“光在TCP上做文章还不够,尤其是在有限带宽的广域网上,如何在传输之前先把本身的数据进行优化同样重要。”丁伟表示,“如果将文件进行解析会发现,任何两点间的传输都有很多重复的数据,如果把这个字和表达先存在当地,只传过去一个索引,再把原来暂时储存的内容字典还原,可以从数据的检索方面节省大约80%的流量。不过,加密文件和VoIP、实时视频等特殊数据除外。”在加上Riverbed在协议优化方面的High Speed TCP技术(可实现TCP窗口动态分配和隧道捆绑),以及通过WDS Steelhead加速设备实现的应用层代理,真正实现了Riverbed针对广域网优化的“三管齐下”。
最后,针对TCP的优化设备甚至还能解决网络安全问题。“在互联网上最常见的DoS/DDoS攻击,主要是利用TCP的Syn来进行攻击。”吴静涛表示,“通过Syn cookie和Delay Binding(延迟绑定)技术可以用来解决这个问题。F5的TMOS架构采用双TCP堆栈技术,客户端和F5设备先建立TCP连接,在F5设备收到真正的请求包后,才会代理客户端发起访问,这样的处理方法保证攻击根本无法到达服务器,来保证应用的正常服务,很多的银行网银系统和互联网站都是采用这种处理方法。”
IPv6——IP的修补
与TCP协议本身优化手段较少不同,IPv6的出现极大地解决了IP协议优化的问题。对此马严表示,“在缓解IP地址空间的同时,IPv6还简化了包头,使得从前除源地址和目的地址外的十字段IPv4包头改为IPv6的六字段,同时IPv6的包头是定长的,这些都使得网络上负责转发的路由器开销减小,进而硬件性能得以提高。另外,协议层要求在IP层上增强安全防护措施,其中IPSec是强制实施的,使得IPv6的安全特征有所增强,并且即插即用的特征也增强了。”
马严表示,目前北京邮电大学全校的有线/无线接入网络都采用IPv4/IPv6双栈,并且服务也有1/3放了上去,虽然在地址空间和安全方面的特性不很明显,但即插即用的功能还是不错,几乎感觉不到要做什么配置。
据悉,“中国下一代互联网示范工程”历时五年的发展,已建成世界上最大的IPv6示范网络,在真实IPv6源地址认证和下一代互联网过渡等核心技术方面已经走在世界的前列,初步形成了仅次于美国的下一代互联网产业群,并有望在国际上率先实现IPv6商用。此外,我国国产IPv6网络设备的全球市场占有率已经跃居世界第二,仅次于美国。中国下一代互联网示范工程已经向互联网标准组织IETF申请互联网标准草案9项,获批2项,这也是中国第一次进入互联网核心标准领域。
不过,一些专家也指出,我国下一代互联网产业整体还较弱,尚未形成包括设备制造、网络运营、软件和信息资源开发、信息服务、终端研制的产业链。同样值得警惕的是,与我国在下一代互联网上取得的成就相比,我国现在拥有的IPv6地址数量不容乐观。
“IPv6还是继承了IPv4的一些设想,虽然附带了QoS、安全、VPN等方面的特性,但必须源到目的之间每个节点都要真正支持才行。”陈智勇表示了另外一种担忧,“由于各个厂商支持TCP/IP的程度不一样,附加特性会被有意无意地忽略掉,使得建成的IP网络变成一个尽力投送的网络。因此从改变协议方面去努力只是一个方面,不如提高现实的部署和应用。”
陈智勇谈到,如果根据IPv6设计框架,各种特性还是需要每个节点支持,走IPv4原有路线的话,成功的可能性还是不够大。神州数码在支持IPv6协议方面比较全面一些,但还是不够,需要大家一起都来做。目前IPv6全球论坛正在对支持IPv6的产品进行认证,一步一步地认证各个阶段,最后通过认证的设备就支持了完整的协议栈。
针对用户向IPv6网络的演进,申强表示:“我们和很多企业网用户探讨,可否将你的网络直接演进到IPv6了?一些用户认为客户端、服务器、路由器都可以支持了。实际上,IPv6的连接性不是最大的制约问题,现有的QoS设备、网络安全设备、应用层安全设备、管理系统、审计系统等全部要向IPv6演进,不是一个真正可运营可管理的IPv6网络。”他表示Blue Coat在这方面做了很多工作,凭借其IPv6 Ready的Proxy SG设备,这家公司正在帮助日本和北美的一些企业客户将他们系统上的管理和安全机制向IPv6演进。
TCP/IP协议优化方式一览表
针对层次 |
优化技术 |
优化原理 |
传输发起端 |
原始数据优化 |
通过压缩、重复数据删除和字典等技术,可节省绝大多数传输数据量,节约带宽,提高服务器性能 |
数据缓存技术 |
将类HTTP的业务、图片、文字等缓存在本地,只传输动态内容,减少带宽占用 | |
物理层(硬件) |
提升设备性能 |
基于现有的TCP/IP,通过硬件方式提高性能,提高大量TCP并发连接和会话重组等处理能力 |
网络层(IP) |
IPv6 |
在解决地址空间的基础上,改进了IPv4的包头设置,并增强了安全性和即插即用特性,但面临互操作性、可管理性和大规模应用等问题。 |
QoS和流量控制 |
通过协议识别,实现在同一端口中不同应用的真正区分,进而通过分流实现时延敏感应用的带宽保障 | |
传输层(TCP) |
代理设备 |
在传输两端各架设代理设备,所有的响应报文都在本地完成,只有真正发起请求时才通过链路,相当于同时在服务器和客户端进行协议欺骗 |
|
TCP协议优化 |
通过在广域网两端部署专用设备,在不影响基本传输情况下,通过各种手段对TCP窗口、响应、启动等机制进行改进,从而以提高协议机制的效率 |
应用层 |
应用代理(缓存) |
将常用的应用程序缓存在本地并配置好,用户可不用在本地等待类似于认证等会话过程,而是直接开始下一个应用,实现流水作业 |
|
操作系统 |
Windows XP、Vista等系统也带有一定的针对TCP流控机制的优化措施,但存在对端支持和兼容性问题 |
编看编想:全面调理 无特效药
这篇文章谈了不少TCP/IP协议优化方面的技术(详见本文表格),本来打算在这里做一个效果对比的,最终放弃这个想法的原因,是发现这些技术实际上并非互斥,而是互相呼应,互为补充的。从严格意义上来说,类似于压缩和缓存技术这样的技术甚至不应当算作是TCP/IP协议优化的一部分(有些人将之看成是节省带宽的一种途径),而实际上它们都是在解决由于协议弊端而带来的问题。
马严在采访中表示,对于广域网来说,目前有若干和TCP并行的SCTP、XTP等算法,但都没有得到普及,想要替代TCP的结果都是不成功的。的确如此,在现实的网络环境中,TCP/IP协议的应用太广泛了,如果网络设备的协议栈不一样,难免出现互联互通问题,比网络优化还要麻烦。可以说,除非彻底推翻协议栈(短期内当然是不可能的),并没有根除TCP/IP弊病的特效药,而应当是一个全面调理,综合治愈的整体解决方案。
毕竟,对于用户来说,希望获得的是一个端到端的性能提升,必须要求从各个层面的各种技术综合运用。从原始数据的优化开始,到网络硬件的性能提升,再到TCP层面的QoS流控,以及应用层的协议优化等,这些技术手段就像是一个个中药匣子。同时,针对用户不同类型的应用,还要各种手段密切搭配,配好药方,最后才能达到更好的协议优化效果,实现用户体验的完美提升。
【编辑推荐】