青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

星綻紫輝(rawdata)的Blog

快樂地學習,快樂地工作!

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 37 Comments :: 0 Trackbacks

常用鏈接

留言簿(5)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

轉載: http://hi.baidu.com/tangzhenjiang/blog/item/e860003be8f807e814cecb28.html

TCP_NODELAY 和 TCP_CORK,
這兩個選項都對網絡連接的行為具有重要的作用。許多UNIX系統都實現了TCP_NODELAY選項,但是,TCP_CORK則是Linux系統所獨有的而且相對較新;它首先在內核版本2.4上得以實現。此外,其他UNIX系統版本也有功能類似的選項,值得注意的是,在某種由BSD派生的系統上的TCP_NOPUSH選項其實就是TCP_CORK的一部分具體實現。
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,Nagle化在這里的含義是采用Nagle算法把較小的包組裝為更大的幀。John Nagle是Nagle算法的發明人,后者就是用他的名字來命名的,他在1984年首次用這種方法來嘗試解決福特汽車公司的網絡擁塞問題(欲了解詳情請參看IETF RFC 896)。他解決的問題就是所謂的silly window syndrome ,中文稱“愚蠢窗口癥候群”,具體含義是,因為普遍終端應用程序每產生一次擊鍵操作就會發送一個包,而典型情況下一個包會擁有一個字節的數據載荷以及40個字節長的包頭,于是產生4000%的過載,很輕易地就能令網絡發生擁塞,。 Nagle化后來成了一種標準并且立即在因特網上得以實現。它現在已經成為缺省配置了,但在我們看來,有些場合下把這一選項關掉也是合乎需要的。
現在讓我們假設某個應用程序發出了一個請求,希望發送小塊數據。我們可以選擇立即發送數據或者等待產生更多的數據然后再一次發送兩種策略。如果我們馬上發送數據,那么交互性的以及客戶/服務器型的應用程序將極大地受益。例如,當我們正在發送一個較短的請求并且等候較大的響應時,相關過載與傳輸的數據總量相比就會比較低,而且,如果請求立即發出那么響應時間也會快一些。以上操作可以通過設置套接字的TCP_NODELAY選項來完成,這樣就禁用了Nagle算法。
另外一種情況則需要我們等到數據量達到最大時才通過網絡一次發送全部數據,這種數據傳輸方式有益于大量數據的通信性能,典型的應用就是文件服務器。應用Nagle算法在這種情況下就會產生問題。但是,如果你正在發送大量數據,你可以設置TCP_CORK選項禁用Nagle化,其方式正好同TCP_NODELAY相反(TCP_CORK 和 TCP_NODELAY 是互相排斥的)。下面就讓我們仔細分析下其工作原理。
假設應用程序使用sendfile()函數來轉移大量數據。應用協議通常要求發送某些信息來預先解釋數據,這些信息其實就是報頭內容。典型情況下報頭很小,而且套接字上設置了TCP_NODELAY。有報頭的包將被立即傳輸,在某些情況下(取決于內部的包計數器),因為這個包成功地被對方收到后需要請求對方確認。這樣,大量數據的傳輸就會被推遲而且產生了不必要的網絡流量交換。
但是,如果我們在套接字上設置了TCP_CORK(可以比喻為在管道上插入“塞子”)選項,具有報頭的包就會填補大量的數據,所有的數據都根據大小自動地通過包傳輸出去。當數據傳輸完成時,最好取消TCP_CORK 選項設置給連接“拔去塞子”以便任一部分的幀都能發送出去。這同“塞住”網絡連接同等重要。
總而言之,如果你肯定能一起發送多個數據集合(例如HTTP響應的頭和正文),那么我們建議你設置TCP_CORK選項,這樣在這些數據之間不存在延遲。能極大地有益于WWW、FTP以及文件服務器的性能,同時也簡化了你的工作。示例代碼如下:

intfd, on = 1;

/* 此處是創建套接字等操作,出于篇幅的考慮省略*/

setsockopt (fd, SOL_TCP, TCP_CORK, &on, sizeof (on)); /* cork */
write (fd, …);
fprintf (fd, …);
sendfile (fd, …);
write (fd, …);
sendfile (fd, …);

on = 0;
setsockopt (fd, SOL_TCP, TCP_CORK, &on, sizeof (on)); /* 拔去塞子 */


不幸的是,許多常用的程序并沒有考慮到以上問題。例如,Eric Allman編寫的sendmail就沒有對其套接字設置任何選項。

Apache HTTPD是因特網上最流行的Web服務器,它的所有套接字就都設置了TCP_NODELAY選項,而且其性能也深受大多數用戶的滿意。這是為什么呢?答案就在于實現的差別之上。由BSD衍生的TCP/IP協議棧(值得注意的是FreeBSD)在這種狀況下的操作就不同。當在TCP_NODELAY 模式下提交大量小數據塊傳輸時,大量信息將按照一次write()函數調用發送一塊數據的方式發送出去。然而,因為負責請求交付確認的記數器是面向字節而非面向包(在Linux上)的,所以引入延遲的概率就降低了很多。結果僅僅和全部數據的大小有關系。而 Linux 在第一包到達之后就要求確認,FreeBSD則在進行如此操作之前會等待好幾百個包。

在Linux系統上,TCP_NODELAY的效果同習慣于BSD TCP/IP協議棧的開發者所期望的效果有很大不同,而且在Linux上的Apache性能表現也會更差些。其他在Linux上頻繁采用TCP_NODELAY的應用程序也有同樣的問題。

posted on 2011-11-17 16:30 星綻紫輝 閱讀(523) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品久久久一本精品| 亚洲激情在线播放| 一本色道久久88综合亚洲精品ⅰ| 91久久夜色精品国产九色| 久久久av毛片精品| 欧美黄色视屏| 一区二区三区四区蜜桃| 国产精品一区一区| 欧美精品成人91久久久久久久| 99在线精品视频| 久久婷婷国产综合国色天香| 欧美深夜影院| 久久久久网址| 亚洲性视频h| 久久99伊人| 日韩午夜免费| 黑人巨大精品欧美黑白配亚洲| 欧美成人综合网站| 午夜精品福利在线| 91久久精品国产91性色| 亚洲字幕在线观看| 国产伦一区二区三区色一情| 男女激情视频一区| 久久久999精品免费| 一区二区精品国产| 日韩一级在线| 91久久精品国产| 欧美激情视频一区二区三区在线播放 | 午夜精品999| 日韩午夜电影av| 欧美a级一区| 久久国产一区二区三区| 亚洲一区二区精品在线| 日韩性生活视频| 亚洲精品一区二区网址| 国精品一区二区| 国产亚洲精品aa| 国产亚洲成av人片在线观看桃| 欧美日韩国产一级| 欧美成人情趣视频| 欧美激情视频一区二区三区不卡| 久久久久久9999| 老司机aⅴ在线精品导航| 久久精品一区二区三区四区| 先锋影音一区二区三区| 欧美在线观看www| 久久青草福利网站| 免费在线日韩av| 欧美国产精品v| 亚洲激情欧美| 亚洲高清电影| 99成人免费视频| 制服诱惑一区二区| 亚洲欧美春色| 久久久av水蜜桃| 欧美大片免费观看在线观看网站推荐| 麻豆精品传媒视频| 欧美日韩国产综合久久| 国产精品入口夜色视频大尺度 | 欧美sm极限捆绑bd| 久久久久国色av免费观看性色| 欧美一区二粉嫩精品国产一线天| 亚洲激情在线视频| 亚洲精品日韩精品| 亚洲午夜av在线| 久久成人国产| 亚洲第一页在线| 欧美成人情趣视频| 国产精品自在在线| 欧美日韩综合不卡| 国产精品日韩欧美一区二区三区| 黑丝一区二区三区| 亚洲日本一区二区三区| 99re66热这里只有精品4| 亚洲国产精品久久久久婷婷884| 曰韩精品一区二区| 亚洲色在线视频| 久热re这里精品视频在线6| 亚洲精品永久免费| 最新亚洲一区| 午夜亚洲激情| 欧美乱在线观看| 伊人久久大香线| 亚洲一区二区三区免费在线观看 | 久久久久成人精品免费播放动漫| 美女啪啪无遮挡免费久久网站| 欧美高清视频一区二区| 国产视频亚洲精品| 正在播放欧美视频| 国产精品99久久久久久人| 久久超碰97中文字幕| 亚洲国产午夜| 久久国产福利国产秒拍| 欧美日韩国产综合视频在线| 亚洲国产欧美另类丝袜| 久久国产视频网| 亚洲网站视频福利| 欧美日韩亚洲高清一区二区| 亚洲黑丝在线| 美女视频黄免费的久久| 午夜亚洲视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 亚洲日本aⅴ片在线观看香蕉| 亚洲精品一二区| 久久精品国产欧美亚洲人人爽| 欧美性猛交xxxx乱大交蜜桃| 99在线精品视频在线观看| 欧美成人资源网| 亚洲第一久久影院| 久久精品电影| 国产午夜精品在线| 久久色在线播放| 欧美综合二区| 欧美成人性网| 免费久久99精品国产自在现线| 中日韩视频在线观看| 久久综合久久88| 亚洲午夜在线观看| 在线激情影院一区| 亚洲第一页自拍| 欧美一区二区视频观看视频| 国产亚洲一区二区精品| 最近中文字幕日韩精品| 国产欧美91| 亚洲伦理在线观看| 亚洲成在人线av| 性色av香蕉一区二区| 亚洲欧美日本国产有色| 欧美精品色综合| 亚洲国产成人av| 在线观看欧美日本| 久久激情综合| 久久夜色精品国产| 国产精品狠色婷| 91久久精品国产91性色| 在线看日韩欧美| 久久视频精品在线| 欧美电影电视剧在线观看| 久热re这里精品视频在线6| 亚洲一区二区三区中文字幕| 久久国产主播精品| 欧美在线观看网站| 国产精品成人观看视频免费| 亚洲国产成人精品久久久国产成人一区| 国产精品视频一区二区高潮| 亚洲第一天堂av| 狠狠色丁香婷婷综合影院| 亚洲午夜久久久| 亚洲欧美日韩在线播放| 国产精品久久久久aaaa樱花| 亚洲视频福利| 性视频1819p久久| 国内揄拍国内精品少妇国语| 久久精品免费电影| 免费观看亚洲视频大全| 精品1区2区3区4区| 嫩草成人www欧美| 国产欧美在线观看| 亚洲电影免费观看高清完整版在线| 国内在线观看一区二区三区| 久久激情视频免费观看| 久久亚洲精品欧美| 亚洲三级影片| 欧美天堂亚洲电影院在线观看 | 亚洲第一在线| 久久视频在线视频| 最新国产精品拍自在线播放| 在线天堂一区av电影| 国产精品高清在线观看| 久久精品国产一区二区三区免费看| 欧美成人首页| 亚洲一区制服诱惑| 亚洲风情在线资源站| 欧美视频一区二| 久久精品91久久久久久再现| 亚洲高清不卡一区| 亚洲欧美日韩在线观看a三区| 在线 亚洲欧美在线综合一区| 欧美噜噜久久久xxx| 欧美一区二区日韩一区二区| 亚洲激情婷婷| 久久黄色级2电影| 一本色道久久综合亚洲精品高清| 国产日韩欧美在线观看| 欧美成人精品激情在线观看 | 老鸭窝毛片一区二区三区| 亚洲免费精品| 快射av在线播放一区| 亚洲综合视频1区| 亚洲精品美女久久7777777| 国产美女精品在线| 欧美日本一区二区三区 | 欧美一区午夜精品| 亚洲欧洲免费视频| 六十路精品视频| 久久天堂成人| 久久久久综合| 欧美一区在线直播| 亚洲一区国产精品| 亚洲视频自拍偷拍|