国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(學(xué)習(xí)筆記-TCP連接斷開)建立了連接,但是客戶端或服務(wù)端出現(xiàn)問題,會(huì)怎么樣?

這篇具有很好參考價(jià)值的文章主要介紹了(學(xué)習(xí)筆記-TCP連接斷開)建立了連接,但是客戶端或服務(wù)端出現(xiàn)問題,會(huì)怎么樣?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

客戶端突然出現(xiàn)故障

客戶端出現(xiàn)故障指的是客戶端的主機(jī)發(fā)生了宕機(jī)或者斷電的場(chǎng)景。發(fā)生這種情況的時(shí)候,如果服務(wù)端一直不會(huì)發(fā)送數(shù)據(jù)給客戶端,那么服務(wù)端是永遠(yuǎn)無法感知到客戶端宕機(jī)這件事的,也就是服務(wù)端的TCP連接將一直處于ESTABLISH 狀態(tài),占用著資源。

為了避免這種情況,TCP有一個(gè)保活機(jī)制。

原理
定義了一個(gè)時(shí)間段,在這個(gè)時(shí)間段內(nèi),如果沒有任何連接相關(guān)的活動(dòng),TCP保活機(jī)制會(huì)開始作用,每隔一個(gè)時(shí)間間隔,發(fā)送一個(gè)探測(cè)報(bào)文,該探測(cè)報(bào)文包含的數(shù)據(jù)非常少,如果連續(xù)幾個(gè)探測(cè)報(bào)文都沒有得到響應(yīng),則認(rèn)為當(dāng)前的TCP連接已經(jīng)死亡,系統(tǒng)內(nèi)核將錯(cuò)誤信息通知給上層應(yīng)用程序。

在linux內(nèi)核可以有對(duì)應(yīng)的參數(shù)可以設(shè)置?;顣r(shí)間、保活探測(cè)的次數(shù)、保活探測(cè)的時(shí)間間隔,默認(rèn)值:

net.ipv4.tcp_keepalive_time=7200
net.ipv4.tcp_keepalive_intvl=75  
net.ipv4.tcp_keepalive_probes=9
  • tcp_keepalive_time =7200:表示?;顣r(shí)間是7200秒(2小時(shí)),也就是2小時(shí)內(nèi)如果沒有任何連接相關(guān)的活動(dòng),則會(huì)啟動(dòng)保活機(jī)制
  • tcp_keepalive_intvl = 75:表示每次檢測(cè)時(shí)間間隔75秒
  • tcp_keepalive_probes=9:表示檢測(cè)9次無響應(yīng),認(rèn)為對(duì)方是不可達(dá)的,從而中斷本次連接

也就是說在Linux系統(tǒng)中,最少需要經(jīng)過2小時(shí)11分15秒才能夠發(fā)現(xiàn)一個(gè)死亡連接
(學(xué)習(xí)筆記-TCP連接斷開)建立了連接,但是客戶端或服務(wù)端出現(xiàn)問題,會(huì)怎么樣?,計(jì)算機(jī)網(wǎng)絡(luò),tcp/ip,學(xué)習(xí),筆記
PS:應(yīng)用程序若想使用TCP?;顧C(jī)制需要通過socket接口設(shè)置SO_KEEPALIVE 選項(xiàng)才能夠生效,如果沒有設(shè)置那么就無法使用TCP?;顧C(jī)制。

如果開啟了TCP?;顧C(jī)制就要考慮以下幾種情況:

  • 第一種,對(duì)端程序正常工作。當(dāng)TCP?;畹奶綔y(cè)報(bào)文發(fā)送給對(duì)端,對(duì)端會(huì)正常響應(yīng),這樣TCP?;顣r(shí)間會(huì)被重置,等待下一個(gè)TCP保活時(shí)間的到來。
  • 第二種,對(duì)端主機(jī)宕機(jī)并重啟。當(dāng)TCP?;畹奶綔y(cè)報(bào)文發(fā)送給對(duì)端后,對(duì)端是可以響應(yīng)的,但由于沒有該連接的有效信息,會(huì)產(chǎn)生一個(gè)RST報(bào)文 ,這樣很快就會(huì)發(fā)現(xiàn)TCP連接已經(jīng)被重置。
  • 第三種,對(duì)端主機(jī)宕機(jī)(注意不是進(jìn)程崩潰,進(jìn)程崩潰后操作系統(tǒng)會(huì)在回收進(jìn)程資源的時(shí)候,會(huì)發(fā)送FIN報(bào)文,而主機(jī)宕機(jī)則是無法感知的,所以需要TCP?;顧C(jī)制來探測(cè)對(duì)方是不是發(fā)生了主機(jī)宕機(jī)),或?qū)Χ酥鳈C(jī)由于其他原因?qū)е聢?bào)文不可達(dá)。當(dāng)TCP保活的探測(cè)報(bào)文發(fā)送給對(duì)端后沒有響應(yīng),連續(xù)幾次,達(dá)到?;钐綔y(cè)次數(shù)后,TCP會(huì)報(bào)告該TCP連接已經(jīng)死亡

TCP?;畹倪@個(gè)機(jī)制檢測(cè)時(shí)間有點(diǎn)長,可以自己在應(yīng)用層實(shí)現(xiàn)一個(gè)心跳機(jī)制。


比如,web服務(wù)軟件一般都會(huì)提供== keepalive_timeout == 參數(shù),指定HTTP長連接的超時(shí)時(shí)間。如果設(shè)置了HTTP長連接的超時(shí)時(shí)間是60秒,web服務(wù)軟件就會(huì)啟動(dòng)一個(gè)定時(shí)器,如果客戶端在完成一個(gè)HTTP請(qǐng)求后,在60秒內(nèi)都沒有再發(fā)起請(qǐng)求,定時(shí)器的時(shí)間一到,就會(huì)觸發(fā)回調(diào)函數(shù)來釋放該連接 。
(學(xué)習(xí)筆記-TCP連接斷開)建立了連接,但是客戶端或服務(wù)端出現(xiàn)問題,會(huì)怎么樣?,計(jì)算機(jī)網(wǎng)絡(luò),tcp/ip,學(xué)習(xí),筆記


服務(wù)端進(jìn)程崩潰

TCP的連接信息是由內(nèi)核維護(hù)的,所以當(dāng)服務(wù)器的進(jìn)程崩潰后,內(nèi)核需要回收該進(jìn)程的所有TCP資源,于是內(nèi)核會(huì)發(fā)送第一次握手FIN報(bào)文,后續(xù)的揮手過程也是在內(nèi)核完成的,并不需要進(jìn)程的參與,所以即使服務(wù)端的進(jìn)程退出了,還是能與客戶端完成TCP四次揮手的過程文章來源地址http://www.zghlxwxcb.cn/news/detail-595078.html

到了這里,關(guān)于(學(xué)習(xí)筆記-TCP連接斷開)建立了連接,但是客戶端或服務(wù)端出現(xiàn)問題,會(huì)怎么樣?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包