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

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            心跳包機(jī)制

                心跳包之所以叫心跳包是因?yàn)椋核裥奶粯用扛艄潭〞r(shí)間發(fā)一次,以此來(lái)告訴服務(wù)器,這個(gè)客戶端還活著。事實(shí)上這是為了保持長(zhǎng)連接,至于這個(gè)包的內(nèi)容,是沒(méi)有什么特別規(guī)定的,不過(guò)一般都是很小的包,或者只包含包頭的一個(gè)空包。
                在TCP的機(jī)制里面,本身是存在有心跳包的機(jī)制的,也就是TCP的選項(xiàng):SO_KEEPALIVE。系統(tǒng)默認(rèn)是設(shè)置的2小時(shí)的心跳頻率。但是它檢查不到機(jī)器斷電、網(wǎng)線拔出、防火墻這些斷線。而且邏輯層處理斷線可能也不是那么好處理。一般,如果只是用于保活還是可以的。
                心跳包一般來(lái)說(shuō)都是在邏輯層發(fā)送空的echo包來(lái)實(shí)現(xiàn)的。下一個(gè)定時(shí)器,在一定時(shí)間間隔下發(fā)送一個(gè)空包給客戶端,然后客戶端反饋一個(gè)同樣的空包回來(lái),服務(wù)器如果在一定時(shí)間內(nèi)收不到客戶端發(fā)送過(guò)來(lái)的反饋包,那就只有認(rèn)定說(shuō)掉線了。
                其實(shí),要判定掉線,只需要send或者recv一下,如果結(jié)果為零,則為掉線。但是,在長(zhǎng)連接下,有可能很長(zhǎng)一段時(shí)間都沒(méi)有數(shù)據(jù)往來(lái)。理論上說(shuō),這個(gè)連接是一直保持連接的,但是實(shí)際情況中,如果中間節(jié)點(diǎn)出現(xiàn)什么故障是難以知道的。更要命的是,有的節(jié)點(diǎn)(防火墻)會(huì)自動(dòng)把一定時(shí)間之內(nèi)沒(méi)有數(shù)據(jù)交互的連接給斷掉。在這個(gè)時(shí)候,就需要我們的心跳包了,用于維持長(zhǎng)連接,保活。
                在獲知了斷線之后,服務(wù)器邏輯可能需要做一些事情,比如斷線后的數(shù)據(jù)清理呀,重新連接呀……當(dāng)然,這個(gè)自然是要由邏輯層根據(jù)需求去做了。
                總的來(lái)說(shuō),心跳包主要也就是用于長(zhǎng)連接的保活和斷線處理。一般的應(yīng)用下,判定時(shí)間在30-40秒比較不錯(cuò)。如果實(shí)在要求高,那就在6-9秒。--!!超級(jí)變態(tài)的要求。

            posted on 2009-11-09 20:58 楊粼波 閱讀(9835) 評(píng)論(3)  編輯 收藏 引用

            評(píng)論

            # re: 心跳包機(jī)制[未登錄](méi) 2009-11-19 14:02 zwicker

            心跳包發(fā)送的頻率一般是多少?  回復(fù)  更多評(píng)論   

            # re: 心跳包機(jī)制 2009-11-20 00:50 楊粼波

            40秒比較好。  回復(fù)  更多評(píng)論   

            # re: 心跳包機(jī)制 2012-09-17 14:39 gamedeveloper

            SO_KEEPALIVE是可以檢查到機(jī)器斷點(diǎn),網(wǎng)線拔出這些斷線的,為什么不可以,長(zhǎng)時(shí)間收不到探測(cè)包的ack,就會(huì)當(dāng)做斷線,踢掉這個(gè)連接吧  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            婷婷久久精品国产| 久久精品国产亚洲av麻豆色欲| 国产综合久久久久| 中文字幕亚洲综合久久| 久久久久亚洲?V成人无码| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 久久久亚洲精品蜜桃臀| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品欧美久久久天天影视| 国产精品久久久久9999高清| 亚洲欧美日韩精品久久亚洲区| 久久精品亚洲日本波多野结衣| 国产视频久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 综合久久国产九一剧情麻豆| 久久综合中文字幕| 久久精品国产亚洲av日韩| 亚洲AV伊人久久青青草原| 亚洲综合久久综合激情久久| 亚洲av伊人久久综合密臀性色| 久久精品国产福利国产琪琪| 久久99精品国产一区二区三区| 久久亚洲精品成人无码网站| 精品国产91久久久久久久a| 国产韩国精品一区二区三区久久| 亚洲香蕉网久久综合影视| 久久婷婷国产剧情内射白浆| 精品久久久久中文字| 国产精品久久久天天影视香蕉 | 无码人妻久久一区二区三区免费 | 亚洲精品tv久久久久久久久久| 久久综合久久综合九色| 国内精品久久久久影院优| 久久婷婷五月综合97色一本一本| 一本色道久久HEZYO无码| 色8激情欧美成人久久综合电| 久久精品国产一区二区电影| 91精品国产高清久久久久久91| 欧美久久综合性欧美| 香港aa三级久久三级| 超级碰久久免费公开视频|