新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Linux的Socket網絡編程的性能優化

        基于Linux的Socket網絡編程的性能優化

        作者: 時間:2009-10-20 來源:網絡 收藏

        4.3 為Bandwidth Delay Product調節TCP窗口
        TCP的性能取決于幾方面因素,最重要的是鏈接帶寬(link bandwidth)(報文在網絡上傳輸的速率)和往返時間(round-trip time)或RTT(發送報文與接收到另一端的響應之間的延時)。這兩個值確定稱為BDP(Bandwidth Delay Prod-uct)的內容。BDP給出一種簡單的方法計算理論上最優的TCP 緩沖區大小(其中保存排隊等待傳輸和等待應用程序接收的數據)。緩沖區太小,TCP窗口就不能完全打開,這會限制性能;緩沖區太大,則會浪費寶貴的內存資源;設置的緩沖區大小合適,就可完全利用可用帶寬。
        BDP計算公式:
        BDP=link bandwidth×RTT
        若應用程序通過一個100MB/s的局域網通信,其RRT為500ms,則BDP為:50MB/sx0.050/ 8625M=625KB。2.6默認的TCP窗口大小是110KB,這將連接的帶寬限制為22M/S,計算方法如下:
        throughput=window_size/RTT
        110 KB/0.050=2.2 MB/s
        使用上面計算的窗口大小,得到帶寬為12.5 MB/s,即:
        625 KB/0 050=12.5 MB/s
        差別很大,并且可以為提供更大的吞吐量??梢愿鶕约旱?a class="contentlabel" href="http://www.104case.com/news/listbylabel/label/Socket">Socket計算最優的緩沖區大小。Socket提供幾個Socket選項,其中兩個可以用于修改Socket的發送和接收緩沖區的大小。使用SO_SNDBUF和SO_RCVBUF選項來調整發送和接收緩沖區的大小。

        本文引用地址:http://www.104case.com/article/157808.htm


        2.6內核中.發送緩沖區的大小由調用用戶定義,而接收緩沖區會自動加倍。通過計算合理設置緩沖區的大小,Socket網絡傳輸帶寬的資源將得到充分利用,從而提高了傳輸性能。

        5 結束語
        設計和實現一個的Socket,通過在服務器端運行預先編譯的可執行文件serv,和在客戶端運行預先編譯的可執行文件clt,服務器端和客戶端建立通信連接。加入select()函數以后,服務器端可以允許多個客戶端接入服務器端,解決了I/O多路復用問題,更加接近實際應用。利用TCP socket禁用Nagle算法實現了最小化報文傳輸的延時,提高了Socket的性能。在網絡帶寬非常珍貴的現實中。提出了為Bandwidth Delay Product調節TCP窗口,修改socket的發送和接收緩沖區的大小,完全利用可用的帶寬。達到較好的網絡傳輸效果。實際網絡傳輸環境復雜多變,如何達到最理想的網絡傳輸,還需進一步的分析和研究。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        p2p機相關文章:p2p原理



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 镇巴县| 通州市| 石楼县| 裕民县| 五家渠市| 南陵县| 虹口区| 巴楚县| 连州市| 黑龙江省| 卫辉市| 甘德县| 虹口区| 鹿邑县| 梅州市| 福泉市| 波密县| 名山县| 仁寿县| 泾阳县| 上林县| 亳州市| 张北县| 鄯善县| 黄冈市| 开原市| 南涧| 蕲春县| 巴彦淖尔市| 洞头县| 恭城| 德州市| 灵寿县| 濮阳市| 镇赉县| 平顶山市| 双江| 巴林右旗| 义马市| 温泉县| 额敏县|