• <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>

            馭風萬里無垠

            TCP幾個小選項引起的“古怪”問題

            許久不查TCP相關的問題,今天下班前被一同事攔下要幫忙,說他碰到了奇怪的問題。

            拿下wireshark抓到的包一看,半天才明白他所說的疑惑是指他每次發(fā)送一個數(shù)據(jù)包,通信對端就回了一個ACK包,由此就直接懷疑是否對方關閉連接或者建立新的連接了。

            花了半天功夫,總算解釋清楚ACK包其實是很正常的數(shù)據(jù)包(帶數(shù)據(jù)的包也有ACK標志的,wireshark只不過是把不帶數(shù)據(jù)的純協(xié)議ACK包在描述信息里邊直接標出來了而已),同事也算是個很老練的Java高手了,對這點基本的小問題有一些疑義,起初是讓我有點疑惑的。

             

            不過總算討論清楚了這個ACK沒有任何問題,本以為他遇到的根本不是問題,豈料他又拋出了一個問題:

                       既然ACK不是造成問題的癥結,為什么我要發(fā)送三個數(shù)據(jù)包,只有前一個的ACK收到之后,下一個包才能發(fā)的出去?每個數(shù)據(jù)包的發(fā)送和受到ACK的時間間隔大于15ms,而他們的系統(tǒng)需求規(guī)定那個間隔必須小于15ms。

            這個問題算是有點深入一點了,即使認為15ms的延遲是正常的TCP協(xié)議棧行為,那么他的三個包只能順序發(fā)出去就有些詫異了,而且據(jù)說是上千個設備都是如此規(guī)律,那么這種規(guī)律本身就不正常了。

            首先的懷疑當然是TCP的buffer滿了,導致send發(fā)送阻塞,不過TCP的數(shù)據(jù)內(nèi)容倒是顯示沒有那個問題,因為他發(fā)送的三個包每個都只有幾十個字節(jié)。

            剩下的情況大概只有一種,就是應用程序手工設置了buffer大小,甚至是設置了SND_BUF為0(其實只要小于他的最小PDU長度),導致他的協(xié)議交互變成了“停等協(xié)議”了;因為每一次發(fā)送的時候,buffer緩沖都不夠用,所以send調(diào)用必然是被阻塞,直到收到前一個包的ACK數(shù)據(jù)然后才能繼續(xù);不熟悉TCP協(xié)議棧的,看到這種現(xiàn)象,就懷疑是那個ACK回復的有問題了。

             

            最后他又提出了一個問題,為什么有時候他一次發(fā)送了三個包,抓包的時候只有兩個?恰巧這又是一個TCP控制選項的問題,鼎鼎大名的“Nagle算法“在底下運作的結果了。

            為了確認猜測不是問題,讓他Show了一下代碼,確認兩種現(xiàn)象對應的是不同的socket,可惜的是后一個socket的創(chuàng)建代碼是無法看到了。

             

            這些小選項引起都是非常基本的TCP協(xié)議棧原理性知識,為何習慣了Java抽象和自帶類庫的人會被這種問題產(chǎn)生的表面現(xiàn)象所疑惑?

            posted on 2009-10-19 19:18 skyscribe 閱讀(494) 評論(0)  編輯 收藏 引用 所屬分類: Linux

            <2009年10月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統(tǒng)計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            伊人精品久久久久7777| 老男人久久青草av高清| 天天爽天天狠久久久综合麻豆| 久久国产成人午夜aⅴ影院| 久久99精品久久久久久秒播| 国产精品久久久天天影视香蕉| 久久99精品国产麻豆宅宅| 91精品国产91久久久久久蜜臀| 国产精品va久久久久久久| 伊人久久无码精品中文字幕| 亚洲精品美女久久777777| 亚洲一区二区三区日本久久九| 久久免费大片| 久久精品aⅴ无码中文字字幕不卡| 2021精品国产综合久久| 国产成人AV综合久久| 亚洲精品乱码久久久久66| 伊人久久综在合线亚洲2019| 午夜精品久久久久久影视777| 精品久久久无码21p发布| 香港aa三级久久三级| 亚洲AV无码一区东京热久久| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 伊人热人久久中文字幕| 久久精品综合网| 91精品婷婷国产综合久久| 久久精品免费一区二区| 国产精品99久久久久久董美香| 亚洲精品午夜国产VA久久成人 | 日韩电影久久久被窝网| 久久综合给合久久狠狠狠97色69| 久久精品国产亚洲5555| 人妻无码久久一区二区三区免费| 四虎久久影院| 国产高清美女一级a毛片久久w| 亚洲国产精品无码久久久蜜芽 | 嫩草影院久久国产精品| 久久精品无码一区二区无码| 亚洲AⅤ优女AV综合久久久| 国产成人精品久久一区二区三区av| 久久国产亚洲高清观看|