網絡延遲、數據包丟棄以及其他的網絡問題都會對最終用戶使用體驗產生不利的影響。把你的應用程序從內部硬件設備上遷至云計算以獲得按需可擴展的優勢,但這只是解決了一些擴展和性能方面的問題。網絡的物理限制以及地理距離都會在不同程度上造成服務器至客戶端設備的數據傳輸延遲。
物理距離是產生延遲問題的一個決定性的因素,它主要會影響從一臺設備發送數據包到另一臺設備所需的往返時間。例如,從美國東海岸發送數據至西海岸就可能會 產生40至50毫秒的延遲。而同一數據包從北美發送至歐洲的往返時間約為80至90毫秒——幾乎為前者的兩倍。而跨太平洋的數據傳輸則需要花費更長的時 間,其延遲時間要超過100毫秒。
雖然我們無法違反基本的物理規律,但是通過使用內容交付網絡(CDN)、TCP優化以及對等協議等措施,我們就能夠消除一些對應用程序性能造成不利影響的因素。
使用CDN復制靜態內容
諸如文字、圖像以及音頻文件這樣的靜態內容通常都是網站和應用程序的重要組合部分。這是因為這一類內容根據定義不會發生頻繁的變化,所以我們可以利用復制 技術來減少在用戶請求內容和接收到內容之間所需的時間。CDN是由地理上分布的服務器組成的,在這些服務器上保存著可供他們客戶使用的內容。當一個用戶請 求內容服務時,這個請求就會被分配至距離用戶最近的服務器。例如,一名在芝加哥的用戶就可能會從位于紐約的一臺服務器上接收到所請求的內容,而在阿姆斯特 丹請求同一內容的一名用戶就可能從一臺位于柏林的服務器上接收內容。
CDN管理著跨所屬服務器上內容數據的復制。你只需上傳內容至一個站點,而CDN就會根據需要分發更新內容至其他的服務器。
針對動態內容優化TCP協議
通常情況下,一個應用程序將響應用戶的服務請求而生成動態內容。例如,一個用戶可能會請求應用程序生成一個滿足某些標準的交易列表。這里,復制靜態內容就顯得無能為力了。
當涉及生成動態內容的應用程序時,我們就會考慮優化傳輸控制協議(TCP)了。TCP協議是大多數需要可靠通訊通道支持的應用程序所使用的協議。TCP協議可確保數據包被發送至它們的目標設備,并以正確的順序組成,否則就會生成錯誤提示。
網絡是易受到外界干擾的( 例如伴有噪聲干擾的信號),和具有內部局限性的(如無法處理高數據流量應用的低容量緩存)。這類問題都會引起TCP數據包發生掉包事件的。
接 收數據包的設備必須確保數據的完整性和準確性,必須建立相應的機制來跟蹤已接收到哪些數據包以及仍在等待哪些數據包。在經過了一段足夠長的等待時間之后, 這個設備就會發送一個請求,要求重新發送本應已接收但實際未接收到的數據包。TCP協議中有大量的參數是用于確定客戶端將等待待接收數據包多長的時間以及 當發生數據包丟失時應重新發送多少個數據包的。優化技術可調整這些參數以提高性能。
優化措施可以被內置到操作系統中,例如Windows操作系統,單機應用程序也可用于幫助調試TCP參數。當在不同設備之間傳輸大文件時,還可以使用專門 的傳輸應用程序。這些應用程序可替代TCP協議或調整TCP協議中的參數,使之更利于文件傳輸。當你在一組已知的設備之間進行數據傳輸或應用程序已準備就 緒可供任何用戶使用時,這些都是可行的解決方案。
擁有全球網絡的供應商們能夠對數據中心之間的數據流量進行優化。這就能夠讓客戶享受到TCP優化的好處而無需自行實施TCP優化。
在網絡服務供應商之間制定協議
在技術層面上,數據在網絡之間進行傳輸是很容易實現的,但是在業務層面,網絡服務供應商之間的協議將決定在網絡之間傳輸什么樣的數據。供應商們維護著一組 協議,以允許在他們網絡之間進行數據交換,有時他們會為這種功能而互相收取費用。這些協議通常被稱為對等協議,它們能夠造成網絡數據傳輸的延遲,因為由于 某些供應商之間對等的限制而不得不通過更慢、更低效的途徑進行數據傳輸。