• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 25,  comments - 36,  trackbacks - 0

            以前覺得飛鴿傳輸的速度在100Mbps 網卡上能夠跑7 8M/s的樣子感覺很神奇,看了一下源代碼貌似沒有發現很大特別地方,只是覺得那個日本人寫的代碼比較正規,學生很少看見漂亮代碼,只會寫垃圾代碼。

            以前寫過傳送文件代碼,發現速度只有飛鴿傳送一般的速度并且貌似傳送的速度還不穩定。想好了好久沒有想明白,后來想貌似網上好多說什么多線程下載,p2p下載。我就想弄個多線程就OK就應該可以提高速度。后面經過自己測試發現這個不是很對,在某種程度上速度稍微有一點點提高。后來,知道網卡是數據傳送不是并行,所以多線程根本不解決本質。(為什么多線程下載可以提高下載速度,你是不是看到過一些瀏覽器的下載管理器 下載一個文件時候都開啟幾個線程,顯然他們開啟多線程是為提高下載速度。。。想知道原理請看下面分解)。

            我想了好久,想到IP協議是以最大速度傳送數據,那么TCP 和 UDP 都是在IP基礎上出來,顯然他們也基礎IP這個特性,所以可見SOCKET 沒有提高網卡傳送的方法,這就說明速度是一個定值。

            我們所說網速其實就是 每秒網卡進過數據流量。
            這里我就要舉一個例子,否則越說越糊涂了。

            一個可以裝20噸的貨車裝滿了沙子,一個可以裝10噸的小貨車裝滿了沙子。 但他們最大速度都相同,他們都以最大速度在2條一樣的條路上行駛,并且都要經過個完全一樣收費站。

            貨車長度是一樣。
            汽車速度就是我們網卡物理最大速度100Mbps == 貨車的速度
            以為長度一樣 速度一樣 我們假設經過的時間為1s
            收費站速度(以沙子為對象) :大貨車的:20噸/s  小貨車:10噸/s   ====== 我們所說的網速
            說到這里我也明白,我以前學習網絡課程不明白的地方,以前網卡最大速度 和 網速 為什么不是一樣。
            網卡100Mbps : 類似如 一個汽車 一秒 可以跑 多少米
            我們所說網速:類似 收費站 一秒 經過的沙子量
            這個2個是不同概念。
            這就好像 長度 和 面積差別。??磥硪郧皩W習數學還是有一點用的。

            所以這里就可說: 貨車裝載量就是套接字(字節流)緩存區大小。我們只要增加緩沖區大小就可以提高我們傳送文件的速度。
            經過測試確實驗證這個說話,測試結果就不貼出來了。

            后面看steven 的tcp/ip詳解 里面也寫了一段話,也說明這個觀點。

            插口A P I允許進程設置發送和接收緩存的大小。接收緩存的大小是該連接上所能
            夠通告的最大窗口大小。有一些應用程序通過修改插口緩存大小來增加性能。

            [Mogul 1993]顯示了在改變發送和接收緩存大?。ㄔ趩蜗驍祿鞯膽弥?,如文件傳輸,
            只需改變發送方的發送緩存和接收方的接收緩存大?。┑那闆r下,位于以太網上的兩個工作
            站之間進行文件傳輸時的一些結果。它表明對以太網而言,默認的 4 0 9 6字節并不是最理想的
            大小,將兩個緩存增加到 1 6 3 8 4個字節可以增加約 4 0 %左右的吞吐量。在 [ P a p a d o p o u l

            o s和Parulkar 1993]中也有相似的結果。

            他這里插口API 就是套接字(我就單純認為套接字)
            windows 緩存區默認大小是8k。

            為什么多線程可以稍微提高網絡速度?
            其實我們想想 一張網卡只要不停跑滿流量就可以達到最高速度。多線程就是使緩存區數據保持被填滿,但這里只是稍微提高。其實單線程就足夠做到這點,
            我們 send 傳入一個Buf 參數時候 只要這個Buf一個合適的值,就足夠使網卡保持繁忙。
            這里就好像怎么是cpu 效率最高就是不要cpu停下來,同理怎么是網卡效率最高,也就是不要它停下來。

            為什么多線程下載可以提高網速?
            我們知道帶寬速度比起網卡速度那完全是皮毛,說實在網卡I/O設備是中斷讀取數據,它讀取數據也不能并行讀?。ú恢肋@么說對不對),所以多線程不是使網卡并行讀取數據,而是增加服務器對你服務器時間(因為你使用多線程),自然傳送速度會快些。
            p2p 我認為無非也是增加服務器對你服務器時間(這里不是指特定服務器,而是能夠給你傳送數據我就叫著服務器,貌似p2p叫對等方)。(我沒有寫過p2p,只是通過一些書籍介紹,憑自己感覺思考的)。因為網卡的讀取速度比起帶寬要快很多,所以p2p 在很大范圍來說 給你上傳數據的對等方越多你的速度越快,但超過一定的值,其實就不可能提高了。


            上面都是本人通過以有知識推測,有些經過驗證,有些沒有進過驗證。如果有錯誤,那就錯了吧??!
            注:錯別字不算錯誤。。。。。。

             

            posted on 2013-05-15 23:00 小魚兒 閱讀(5114) 評論(5)  編輯 收藏 引用

            FeedBack:
            # re: SOCK_STRAM SOCKET 的緩存區 和 傳送速度的關系[未登錄]
            2013-05-16 14:43 | 春秋十二月
            網速主要取決于程序、網卡和網絡帶寬,程序屬于軟件因素,包括發送方和接收方;網卡和帶寬則是硬件因素。
            1)只要發送方不停地發,每次盡可能發多數據,就能使網卡繁忙。但還需要接收方讀得快才行。
            2)多線程僅當多核并發時才能提高性能,這時下載就是同時獲取文件的多個塊。
            3)增大緩沖區的值確實能提高速率,但減少卻不意味著降低速率。  回復  更多評論
              
            # re: SOCK_STRAM SOCKET 的緩存區 和 傳送速度的關系
            2013-05-18 22:32 | wysaid
            發現速度只有飛鴿傳送"一般"的速度并且貌似傳送的速度還不穩定
            →_→  回復  更多評論
              
            # re: SOCK_STRAM SOCKET 的緩存區 和 傳送速度的關系
            2013-05-19 12:38 | 小魚兒
            恩,同意你的說話  回復  更多評論
              
            # re: SOCK_STRAM SOCKET 的緩存區 和 傳送速度的關系
            2013-05-19 12:39 | 小魚兒
            @wysaid
            呵呵,沒有辦法。
            打字經常打錯。。。。。


              回復  更多評論
              
            # re: SOCK_STRAM SOCKET 的緩存區 和 傳送速度的關系
            2013-05-28 10:46 | tb
            呵呵 同意 IT又多一個人才  回復  更多評論
              
            <2013年5月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(4)

            隨筆檔案(25)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久久综合网天天| 精品国产青草久久久久福利| 久久精品国产亚洲7777| 欧美亚洲另类久久综合婷婷 | 久久久国产精华液| 无码日韩人妻精品久久蜜桃 | 91精品国产91热久久久久福利| 久久亚洲精品视频| 亚洲&#228;v永久无码精品天堂久久| 欧美一区二区久久精品| 97久久超碰国产精品旧版| 久久久WWW免费人成精品| 无码人妻久久一区二区三区免费丨| 久久久久久久综合日本亚洲| 深夜久久AAAAA级毛片免费看| 精品熟女少妇av免费久久| 久久久精品人妻无码专区不卡 | 国产精品免费看久久久| 久久久久亚洲精品男人的天堂| 国内精品久久久久久99| 亚洲?V乱码久久精品蜜桃 | 亚洲AV无码久久寂寞少妇| 国产精品99久久久久久人| 亚洲综合日韩久久成人AV| 久久久精品日本一区二区三区| 国内精品久久久久伊人av| 老男人久久青草av高清| 久久久久久青草大香综合精品| 国产精品久久国产精麻豆99网站| 一本色道久久综合亚洲精品| 久久婷婷五月综合成人D啪| 91精品观看91久久久久久| 日日躁夜夜躁狠狠久久AV| 久久婷婷人人澡人人爽人人爱| 日韩精品无码久久一区二区三| 国产亚洲成人久久| 99久久精品无码一区二区毛片 | 久久国产影院| 欧美大战日韩91综合一区婷婷久久青草| 国产精品视频久久久| 好属妞这里只有精品久久|