濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > CentOS下TCP斷線監(jiān)測(cè)詳解

CentOS下TCP斷線監(jiān)測(cè)詳解

熱門標(biāo)簽:廣州點(diǎn)撥外呼系統(tǒng)多少錢一個(gè)月 辦理400電話的好處都有哪些 日立hgp外呼線路圖 400外呼系統(tǒng) 配置要求 仙桃外呼系統(tǒng) 貴港便宜外呼系統(tǒng)報(bào)價(jià) 怎樣在北斗地圖標(biāo)注商戶 太原外呼電銷機(jī)器人軟件 電話外呼系統(tǒng)解決方案

TCP正常的斷開(kāi),通信雙方(服務(wù)端和客戶端)都是能知道的。但是非正常的斷開(kāi),比如直接拔掉了網(wǎng)線,就只能靠如下兩種方法,實(shí)現(xiàn)短時(shí)間內(nèi)的檢測(cè)。

,心跳包機(jī)制

心跳包機(jī)制,是網(wǎng)游設(shè)計(jì)中的常用機(jī)制。從用戶層面,自己發(fā)包去判斷對(duì)方連線狀態(tài)??梢愿鶕?jù)情況,很靈活的使用。比如,20秒發(fā)送一個(gè)最小的數(shù)據(jù)包(也可以根據(jù)實(shí)際情況稍帶一些其他數(shù)據(jù))。如果發(fā)送沒(méi)有回應(yīng),就判斷對(duì)方掉線了。

,利用tcp_keepalive機(jī)制

利用TCP的機(jī)制,通過(guò)設(shè)置系統(tǒng)參數(shù),從系統(tǒng)層面,監(jiān)測(cè)tcp的連接狀態(tài)。以下為linux下的方法:

1,首先查看系統(tǒng)tcp_keepalive相關(guān)參數(shù)(centos和Ubuntu)

# sysctl -a|grep tcp_keepalive

顯示如下:

net.ipv4.tcp_keepalive_intvl = 75

net.ipv4.tcp_keepalive_probes = 9

net.ipv4.tcp_keepalive_time = 7200

分別說(shuō)一下這三個(gè)參數(shù):

tcp_keepalive_time 參數(shù):

是指TCP發(fā)送keepalive消息的頻度,默認(rèn)為7200秒,也就是兩個(gè)小時(shí)。

keepalive_intvl 參數(shù):

當(dāng)探測(cè)沒(méi)有確認(rèn)時(shí),重新發(fā)送探測(cè)的頻度。默認(rèn)是75秒。

keepalive_probes 參數(shù):

在認(rèn)定連接失效之前,發(fā)送多少個(gè)TCP的keepalive探測(cè)包。默認(rèn)值是9次。

--------------------------------------------------------------------

2,修改系統(tǒng)的tcp_keepalive相關(guān)參數(shù)

在知道以上三個(gè)系統(tǒng)參數(shù)的定義和作用之后,我們來(lái)修改一下這三個(gè)參數(shù):

修改/etc/sysctl.conf文件:

# vi /etc/sysctl.conf

在打開(kāi)的文件中,加入如下三行:

net.ipv4.tcp_keepalive_intvl = 1

net.ipv4.tcp_keepalive_probes = 1

net.ipv4.tcp_keepalive_time = 5

保存文件。

--------------------------------------------------------------------

3,重啟服務(wù)器。

# reboot

附注:或者臨時(shí)使系統(tǒng)設(shè)置生效也行:# sysctl -p

--------------------------------------------------------------------

4,修改程序代碼部分。

注意:僅僅配置內(nèi)核參數(shù)是不夠的,還必須在編程的時(shí)候設(shè)置套接字的選項(xiàng),調(diào)用函數(shù)是

socket.setsockopt(level, optname, value) 

示例:

level為SOL_SOCKET的話,選項(xiàng)為SO_KEEPALIVE,值為布爾。

socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, True)  

此外還可以設(shè)置TCP選項(xiàng)(設(shè)置的level為SOL_TCP而不是SOL_SOCKET)覆蓋系統(tǒng)全局設(shè)置

TCP_KEEPCNT  與tcp_keepalive_probes 對(duì)應(yīng)

TCP_KEEPIDLE 與tcp_keepalive_time 對(duì)應(yīng)

TCP_KEEPINTVL 與tcp_keepalive_intvl 對(duì)應(yīng)

--------------------------------------------------------------------

標(biāo)簽:麗水 廣安 青島 公主嶺 商丘 河源 雅安 六盤水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS下TCP斷線監(jiān)測(cè)詳解》,本文關(guān)鍵詞  CentOS,下,TCP,斷線,監(jiān)測(cè),詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CentOS下TCP斷線監(jiān)測(cè)詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于CentOS下TCP斷線監(jiān)測(cè)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    梁河县| 凤阳县| 渝北区| 苏尼特左旗| 盖州市| 黑水县| 浮山县| 米易县| 寻乌县| 松阳县| 克东县| 临湘市| 武汉市| 滨州市| 余庆县| 淮南市| 博罗县| 西畴县| 登封市| 唐河县| 稷山县| 探索| 南雄市| 南皮县| 靖西县| 连平县| 牟定县| 溆浦县| 横峰县| 囊谦县| 资兴市| 宁南县| 铜鼓县| 玛纳斯县| 七台河市| 东山县| 万宁市| 厦门市| 镇江市| 安图县| 四子王旗|