国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

可以通過(guò)設(shè)置系統(tǒng)內(nèi)的tcp keepalive來(lái)縮短極端情況的斷線嗎?

啊噠梨

當(dāng)服務(wù)端不要求客戶端必須回應(yīng)心跳檢測(cè)時(shí),假如客戶端遇到掉電等極端情況,這時(shí)服務(wù)端向客戶端發(fā)送的心跳數(shù)據(jù)在TCP層面就會(huì)發(fā)送超時(shí),遇到這種超時(shí)情況TCP會(huì)重試多次(次數(shù)及間隔依賴操作系統(tǒng)的配置),多次無(wú)果后會(huì)斷開(kāi)連接。這種極端情況從連接斷開(kāi)到服務(wù)端檢測(cè)到可能要持續(xù)至少10分鐘才觸發(fā)onClose事件回調(diào)。

可以通過(guò)以下的設(shè)置來(lái)縮短超時(shí)情況下的斷線嗎?

$ vim /etc/sysctl.conf
    net.ipv4.tcp_keepalive_time = 200
    net.ipv4.tcp_keepalive_probes = 5
    net.ipv4.tcp_keepalive_intvl = 30
$ sysctl -p

以上設(shè)置以后似乎沒(méi)有效果,使用 Gateway::getAllClientSessions() 依舊可以看到該連接,在設(shè)備斷電第17分鐘左右(有時(shí)候還要更久一點(diǎn)),該連接才下線。

求大大答疑解惑~

3843 1 1
1個(gè)回答

walkor 打賞

看了些資料有這樣的說(shuō)法,我沒(méi)有做驗(yàn)證,你看下

正常情況下,連接的另一端主動(dòng)調(diào)用colse關(guān)閉連接,tcp會(huì)通知,我們知道了該連接已經(jīng)關(guān)閉。但是如果tcp連接的另一端突然掉線,或者重啟斷電,這個(gè)時(shí)候我們并不知道網(wǎng)絡(luò)已經(jīng)關(guān)閉。而此時(shí),如果有發(fā)送數(shù)據(jù)失敗,tcp會(huì)自動(dòng)進(jìn)行重傳。重傳包的優(yōu)先級(jí)高于keepalive,那就意味著,我們的keepalive總是不能發(fā)送出去。 而此時(shí),我們也并不知道該連接已經(jīng)出錯(cuò)而中斷。在較長(zhǎng)時(shí)間的重傳失敗之后,我們才會(huì)知道。

另外net.ipv4.tcp_keepalive_time = 200 貌似太長(zhǎng)了,200秒有些路由節(jié)點(diǎn)可能已經(jīng)把連接路由清理了。
最好是60秒以內(nèi)

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??