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


            国产精品久久久久一区二区三区 | 97精品国产97久久久久久免费| 伊人久久精品无码二区麻豆| 久久精品国产亚洲精品2020 | 久久精品亚洲中文字幕无码麻豆| 精品久久一区二区| 亚洲日本va午夜中文字幕久久| 国产成人精品免费久久久久| 伊人久久亚洲综合影院| 久久精品国产99国产精偷| 一本久久a久久精品综合香蕉| 国产精品99精品久久免费| 亚洲精品第一综合99久久 | 99久久精品国产麻豆| 一本综合久久国产二区| 久久综合久久综合久久综合| 久久久噜噜噜久久中文福利| 热综合一本伊人久久精品| 久久99国产精品久久| 亚洲va久久久噜噜噜久久| 中文字幕精品无码久久久久久3D日动漫 | 久久精品国产秦先生| 色婷婷综合久久久中文字幕 | 久久精品国产一区二区三区不卡| 亚洲精品乱码久久久久久中文字幕| 久久国产视频99电影| 7国产欧美日韩综合天堂中文久久久久| 丁香色欲久久久久久综合网| 四虎亚洲国产成人久久精品| 久久国产视频99电影| 亚洲国产天堂久久综合网站| 欧美亚洲另类久久综合| 精品熟女少妇av免费久久| 亚洲AV无码久久精品狠狠爱浪潮 | 精品亚洲综合久久中文字幕| 国产精品久久久久国产A级| 97r久久精品国产99国产精| 热99re久久国超精品首页| 91久久香蕉国产熟女线看| 久久无码人妻精品一区二区三区| 久久一本综合|