補牢TCP/IP——適應長肥網絡環境
在經過二十多年的發展后,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流控,以及應用層的協議優化等,這些技術手段就像是一個個中藥匣子。同時,針對用戶不同類型的應用,還要各種手段密切搭配,配好藥方,最后才能達到更好的協議優化效果,實現用戶體驗的完美提升。
【編輯推薦】