歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux環境下提高網絡傳輸性能方法簡介

Linux環境下提高網絡傳輸性能方法簡介

日期:2017/2/28 16:40:07   编辑:Linux教程

  在開發 socket 應用程序時,首要任務通常是確保可靠性並滿足一些特定的需求。利用本文中給出的 4 個提示,您就可以從頭開始為實現最佳性能來設計並開發 socket 程序。本文內容包括對於 Sockets API 的使用、兩個可以提高性能的 socket 選項以及 GNU/Linux 優化。

  為了能夠開發性能卓越的應用程序,請遵循以下技巧:

  最小化報文傳輸的延時。

  最小化系統調用的負載。

  為 Bandwidth Delay Product 調節 TCP 窗口。

  動態優化 GNU/Linux TCP/IP 棧。

  技巧 1. 最小化報文傳輸的延時

  在通過 TCP socket 進行通信時,數據都拆分成了數據塊,這樣它們就可以封裝到給定連接的 TCP payload(指 TCP 數據包中的有效負荷)中了。TCP payload 的大小取決於幾個因素(例如最大報文長度和路徑),但是這些因素在連接發起時都是已知的。為了達到最好的性能,我們的目標是使用盡可能多的可用數據來填充 每個報文。當沒有足夠的數據來填充 payload 時(也稱為最大報文段長度(maximum segment size) 或 MSS),TCP 就會采用 Nagle 算法自動將一些小的緩沖區連接到一個報文段中。這樣可以通過最小化所發送的報文的數量來提高應用程序的效率,並減輕整體的網絡擁塞問題。

  盡管 John Nagle 的算法可以通過將這些數據連接成更大的報文來最小化所發送的報文的數量,但是有時您可能希望只發送一些較小的報文。一個簡單的例子是 telnet 程序,它讓用戶可以與遠程系統進行交互,這通常都是通過一個 shell 來進行的。如果用戶被要求用發送報文之前輸入的字符來填充某個報文段,那麼這種方法就絕對不能滿足我們的需要。

  另外一個例子是 HTTP 協議。通常,客戶機浏覽器會產生一個小請求(一條 HTTP 請求消息),然後 Web 服務器就會返回一個更大的響應(Web 頁面)。

Copyright © Linux教程網 All Rights Reserved