延遲是數據從網絡上的一個點傳遞到另一個點所需的時間。假設紐約的服務器 A 向倫敦的服務器 B發送一個數據包。服務器 A 在格林威治標準時間 04:38:00.000 發送數據包,服務器 B 在格林威治標準時間 04:38:00.145 接收數據包。此路徑上的延遲量是這兩個時間之間的差異:0.145 秒或 145 毫秒。
大多數情況下,延遲是在用戶設備(“客戶端”設備)和數據中心之間測量的。此測量可幫助開發人員了解網頁或應用程序為用戶加載的速度。
盡管互聯網上的數據以光速傳播,但距離和互聯網基礎設施設備造成的延遲的影響意味著永遠無法完全消除延遲。然而,它可以而且應該被最小化。大量延遲會導致網站性能不佳,對 SEO 產生負面影響,并可能導致用戶完全離開網站或應用程序。
是什么導致互聯網延遲?
網絡延遲的主要原因之一是距離,特別是發出請求的客戶端設備與響應這些請求的服務器之間的距離。如果一個網站托管在俄亥俄州哥倫布市的數據中心,它將很快收到來自辛辛那提(大約 100 英里外)用戶的請求,可能在 5-10 毫秒內。另一方面,來自洛杉磯(約 2,200 英里外)用戶的請求將需要更長的時間才能到達,接近 40-50 毫秒。
幾毫秒的增加可能看起來不多,但這與客戶端和服務器建立連接所必需的所有來回通信、頁面的總大小和加載時間以及任何問題相結合數據沿途通過網絡設備。在客戶端請求之后響應到達客戶端設備所需的時間稱為往返時間 (RTT)。RTT 等于延遲量的兩倍,因為數據必須在兩個方向上傳輸——從那里再回來。
穿越互聯網的數據通常不僅要跨越一個網絡,還要跨越多個網絡。HTTP響應需要通過的網絡越多,延遲的機會就越大。例如,當數據包在網絡之間交叉時,它們會通過Internet 交換點 (IXP)。在那里,路由器必須處理和路由數據包,有時路由器可能需要將它們分解成更小的數據包,所有這些都會給 RTT 增加幾毫秒的時間。
網絡延遲、吞吐量和帶寬
延遲、帶寬和吞吐量都是相互關聯的,但它們都衡量不同的東西。帶寬是在任何給定時間可以通過網絡的最大數據量。吞吐量是在給定時間段內實際通過的平均數據量。吞吐量不一定等同于帶寬,因為它受延遲和其他因素的影響。延遲是對時間的衡量,而不是隨著時間的推移下載了多少數據。
如何減少延遲?
使用CDN(內容交付網絡)是減少延遲的重要一步。CDN緩存靜態內容并將其提供給用戶。CDN 服務器分布在多個位置,因此內容存儲在離最終用戶更近的地方,不需要走很遠就能到達他們。這意味著加載網頁將花費更少的時間,從而提高網站速度和性能。
除了延遲之外的其他因素也會降低性能。Web 開發人員可以最大限度地減少渲染阻塞資源的數量(例如,最后加載 JavaScript),優化圖像以加快加載速度,并盡可能減小文件大小。代碼縮小是減小 JavaScript 和 CSS 文件大小的一種方法。
通過策略性地首先加載某些資產來提高感知頁面性能是可能的。可以將網頁配置為首先加載頁面的首屏區域,以便用戶甚至可以在頁面完成加載之前開始與頁面交互(首屏是指在用戶向下滾動之前出現在瀏覽器窗口中的內容) . 網頁還可以使用稱為延遲加載的技術僅在需要時加載資產。這些方法實際上并沒有改善網絡延遲,但它們確實改善了用戶對頁面速度的感知。
用戶如何解決延遲問題?
有時,網絡“延遲”(網絡性能緩慢)是由用戶端的問題引起的,而不是服務器端的問題。如果網絡性能緩慢是一個持續存在的問題,消費者總是可以選擇購買更多帶寬,盡管帶寬不是網站性能的保證。切換到以太網而不是 WiFi 將導致更一致的 Internet 連接,并且通常會提高 Internet 速度。用戶還應通過定期應用固件更新并在必要時完全更換設備來確保他們的互聯網設備是最新的。