补牢TCP/IP——适应长肥网络环境(上)

日期: 2009-01-15 作者:闫冰 来源:TechTarget中国 英文

在经过二十多年的发展后,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设备收到真正的请求包后,才会代理客户端发起访问,这样的处理方法保证攻击根本无法到达服务器,来保证应用的正常服务,很多的银行网银系统和互联网站都是采用这种处理方法。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

闫冰
闫冰

相关推荐