TCP 自己實(shí)現(xiàn)的一種檢測心跳情況的機(jī)制。
?基于TCP打開的鏈接,會伴隨一些計(jì)時(shí)器(timer),有些計(jì)時(shí)器是用來管理keepalive的沈自,當(dāng)計(jì)時(shí)器趨于 0 的時(shí)候(一般也就是整個(gè)鏈接鏈路空閑,沒有數(shù)據(jù)傳輸?shù)臅r(shí)候)辜妓,會觸發(fā)keepalive 端向另一端發(fā)送ack (相關(guān)參數(shù):tcp_keepalive_time枯途,該參數(shù)決定idle時(shí)間為多少是發(fā)送ack),如果這個(gè)ack沒有正常的回復(fù)籍滴,則會觸發(fā)一個(gè)ack探針發(fā)送(相關(guān)參數(shù):tcp_keepalive_probes柔袁,該參數(shù)決定發(fā)送探針應(yīng)該發(fā)送幾次才斷掉連接),探針發(fā)送頻率(相關(guān)參數(shù):tcp_keepalive_intvl异逐,每個(gè)探針發(fā)送間隔時(shí)間)決定探針發(fā)送速度。當(dāng)探針發(fā)送足夠而且沒有回復(fù)插掂,則TCP協(xié)議會關(guān)掉這條連接灰瞻。
相關(guān)文檔:
http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/
http://www.blogjava.net/yongboy/archive/2015/04/14/424413.html
http://www.cnblogs.com/fengbohello/p/4250177.html
https://hengyunabc.github.io/why-we-need-heartbeat/