• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種智能心跳方法技術

    技術編號:21167210 閱讀:46 留言:0更新日期:2019-05-22 09:41
    本發明專利技術公開了一種智能心跳方法,涉及移動通信領域。該方法在客戶端引入短心跳機制和自適應心跳機制,通過客戶向目標服務器按照遞增且非固定的時間間隔發送心跳數據包,根據不同的網絡情況,自動調整發送心跳的周期。由此來解決現有技術中固定周期的心跳給客戶端帶來過多功耗和流量的消耗以及給服務器端帶來的巨大訪問壓力的問題。

    An Intelligent Heart Rate Method

    The invention discloses an intelligent heartbeat method, which relates to the field of mobile communication. This method introduces short heartbeat mechanism and adaptive heartbeat mechanism in the client side, sends heartbeat data packets to the target server at incremental and non-fixed time intervals, and automatically adjusts the cycle of sending heartbeat according to different network conditions. In order to solve the problem that fixed cycle heartbeat brings excessive power consumption and traffic consumption to the client and huge access pressure to the server in the existing technology.

    【技術實現步驟摘要】
    一種智能心跳方法
    本專利技術涉及移動通信技術,具體涉及通信過程中心跳控制方法。
    技術介紹
    心跳多用于基于長連的通訊系統中,用于持續的通知后臺服務器,客戶端依舊存活。心跳包就是雙方所定義的一種用來通知對方存活的數據通訊結構。周期性的發心跳包給服務器主要有以下幾個原因:1.通知服務器,客戶端存活狀態,一旦服務器監測到在某段時間沒有收到客戶端發來的心跳包,服務器就會釋放曾經為此客戶端分配的所有資源,例如Socket連接;2.定時的刷新NAT內外網IP映射表,以便防止NAT路由器移除映射表,導致客戶端和服務器端的連接中斷,特別是基于udp的服務,路由表更新非常頻繁。其中,最為簡單的實現就是定期的給服務器發送心跳包,但是如何確定周期時間間隔為本技術中需要解決的問題。由于不同網絡拓撲結構在實現時,NA節點會分配到不同的網路路由當中,不同的NAT有不同的策略來處理映射表,一旦NAT發現某個映射表對應IP在某段時間內沒有上行或下行數據,NAT就會移除此IP映射表,導致連接被中斷。由此可以額確定,以較短的時間間隔周期性地向服務器發送心跳包,會加大客戶端尤其是移動設備的功耗和流量的消耗。
    技術實現思路
    針對現有通信過程中客戶端與目標服務器之間心跳控制方案所存在的問題,需要一種新的通信心跳控制案。為此,本專利技術的目的在于提供一種智能心跳方法,可根據不同的網絡情況,自動調整發送心跳的周期。為了達到上述目的,本專利技術提供的智能心跳方法,包括:在客戶端與目標服務器之間建立socket連接,并且使得客戶端相應的連接地址緩存在服務器;客戶端啟動心跳線程,用預設短心跳周期為時間間隔向目標服務器發送預定次數的心跳數據包,如果預定次數的心跳交互都成功,則進入自適應心跳計算狀態;客戶端開始探測心跳周期最大值,客戶端在預設短心跳周期基礎上增加步長作為下一次發送心跳數據包的時間間隔,并針對心跳周期如此遞歸增加其步長,直至心跳失敗;取比最新的一個心跳成功值小一點的值作為心跳周期的最大值,即successHeart;客戶端以successHeart為周期發送心跳,進入穩定態。進一步的,在客戶端與目標服務器之間基于udp的socket連接。進一步的,將目標服務器配置成支持兩種回執數據包:正常的心跳確認數據包和nat變更數據包。進一步的,將目標服務器配置成在收到心跳數據包后,將現有地址與已緩存的上個發送心跳數據包的地址作比較:如果地址改變,目標服務器立即做相應更新,并為客戶端回復一個nat變更的數據包;如果標識未改變,則向客戶端返回一個針對收到的心跳數據包的確認數據包。進一步的,將客戶端配置成處于穩定態以successHeart為周期發送心跳一段時間后,在successHeart基礎上增加步長,繼續探測心跳最大值,以適應nat超時時間變長的情況;如果客戶端收到來自服務器端的nat變更數據包,則客戶端取最近一次successHeart周期一半的值作為基礎,重新探測心跳周期最大值。進一步的,如果客戶端連續預定次數的心跳包都沒有得到服務端的回執,則認為服務端已故障,客戶端關閉socket連接。本專利技術提供的方案通過客戶端向目標服務器按照遞增且非固定的時間間隔發送心跳數據包,可以根據不同的網絡情況,自動調整發送心跳的周期,有效解決固定周期的心跳給客戶端帶來過多功耗和流量的消耗以及給服務器端帶來的巨大訪問壓力的問題。附圖說明以下結合附圖和具體實施方式來進一步說明本專利技術。圖1為本專利技術實例中客戶端與目標服務器之間進行智能心跳的原理圖;圖2為本專利技術實例中客戶端發向目標服務器的心跳數據結構示意圖;圖3為本專利技術實例中目標服務器收到心跳數據后向客戶端發送的回執數據示意圖;圖4為本專利技術實例中客戶端和服務端對心跳數據包處理的邏輯流程圖。具體實施方式為了使本專利技術實現的技術手段、創作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本專利技術。在用戶通過客戶端與服務器建立網絡通信連接過程中,在客戶端斷開與服務器的通信之前,客戶端為了告知服務器其為在線狀態,通過向目標服務器發送心跳數據包,以確保通信連接的有效性。參見圖2,客戶端向目標服務器發送心跳數據包的目的在于與目標服務器保持長連接,至于心跳數據包中包含的具體內容沒有特別的規定,不過,為了減輕目標服務器對心跳數據包的處理資源,心跳數據包一般都是很小的包,或者只包含包頭的一個空包。本專利技術實施例對心跳數據包中包含的具體內容不作限定。同時,目標服務器收到來自客戶端的心跳包后,相應地向客戶端回執一個數據包。目標服務器配置成支持兩種回執數據包:正常的心跳確認數據包和nat變更數據包。如圖3所示,如果服務端檢測到端口號改變,則將Nat字段值置為1,否則將其置為0。若,客戶端每隔固定時間間隔會向服務器發送一次心跳數據包請求,這樣會增大客戶端的功耗,也會增加服務器的訪問負荷,影響服務器的響應速度。對此,本實例提供智能心跳方案,通過客戶端向目標服務器按照遞增且非固定的時間間隔發送心跳數據包,可以根據不同的網絡情況,自動調整發送心跳的周期,能夠降低客戶端的功耗和流量消耗,同時也不會給服務器端帶來的巨大訪問壓力。參見圖1,其所示為智能心跳方案的基本原理圖。本智能心跳方案應用于客戶端,在客戶端將心跳數據包發送給目標服務器時,引入短心跳機制和自適應心跳機制,以控制客戶端智能的向目標服務器發送心跳數據包。參見圖4,其所示為應用本智能心跳方案的客戶端向目標服務器智能送心跳數據包的一種示例流程。在實施智能送心跳數據包前,客戶端與目標服務器之間首先需要建立基于udp的socket連接;同時在建立連接的過程中,服務器緩存相應客戶端的連接地址。由此,首先由客戶端啟動心跳線程,并向目標服務器發送心跳數據包。在具體實施時,客戶端先用預設短心跳周期發三次心跳,如果三次心跳交互都成功,則客戶端進入自適應心跳狀態,否則斷開連接。接著,進入自適應心跳狀態,在該狀態下基于自適應心跳機制探測心跳最大值。客戶端在預設短心跳周期基礎上增加步長作為下一次發送心跳數據包的時間間隔,并針對心跳周期遞歸增加其步長,直至收到來自服務器的nat變更數據包,然后取比最新的一個心跳成功值小一點的值作為心跳周期的最大值,即successHeart,然后客戶端以successHeart為周期發送心跳,進入穩定態。這里取比最新的一個心跳成功值小一點的值作為心跳周期的最大值,能夠有效規避臨界值。接著,處于穩定態的客戶端將以successHeart為周期發送心跳,一段時間后,在successHeart基礎上增加步長,繼續探測心跳最大值,以適應nat超時時間變長的情況。目標服務器收到心跳數據包后,將現有地址與已緩存的地址作比較:如果地址改變,目標服務器立即做相應更新,并為客戶端回復一個nat變更的數據包;如果地址未改變,則向客戶端返回一個針對該心跳數據包的確認數據包。與此同時,如果客戶端收到來自服務器端的nat變更數據包,則客戶端取最近一次successHeart周期一半的值作為基礎,重新探測心跳周期最大值。如果客戶端連續三個心跳包都沒有得到服務端的回執,則認為服務端已故障,客戶端關閉socket連接。整個過程通過客戶端向目標服務器按照遞增且非固定的時間間隔發送心跳數據包,實現可以根據不同的網絡情況,自動調本文檔來自技高網...

    【技術保護點】
    1.智能心跳方法,其特征在于,包括:在客戶端與目標服務器之間建立socket連接,并且使得客戶端相應的連接地址緩存在服務器;客戶端啟動心跳線程,用預設短心跳周期為時間間隔向目標服務器發送預定次數的心跳數據包,如果預定次數的心跳交互都成功,則進入自適應心跳計算狀態;客戶端開始探測心跳周期最大值,客戶端在預設短心跳周期基礎上增加步長作為下一次發送心跳數據包的時間間隔,并針對心跳周期如此遞歸增加其步長,直至心跳失敗;取比最新的一個心跳成功值小一點的值作為心跳周期的最大值,即successHeart;客戶端以successHeart為周期發送心跳,進入穩定態。

    【技術特征摘要】
    1.智能心跳方法,其特征在于,包括:在客戶端與目標服務器之間建立socket連接,并且使得客戶端相應的連接地址緩存在服務器;客戶端啟動心跳線程,用預設短心跳周期為時間間隔向目標服務器發送預定次數的心跳數據包,如果預定次數的心跳交互都成功,則進入自適應心跳計算狀態;客戶端開始探測心跳周期最大值,客戶端在預設短心跳周期基礎上增加步長作為下一次發送心跳數據包的時間間隔,并針對心跳周期如此遞歸增加其步長,直至心跳失敗;取比最新的一個心跳成功值小一點的值作為心跳周期的最大值,即successHeart;客戶端以successHeart為周期發送心跳,進入穩定態。2.根據權利要求1所述的智能心跳方法,其特征在于,在客戶端與目標服務器之間基于udp的socket連接。3.根據權利要求1所述的智能心跳方法,其特征在于,將目標服務器配置成支持兩種回執數據包:正常的心跳確認數據包和nat變更數據包。...

    【專利技術屬性】
    技術研發人員:楊陽鄭富強
    申請(專利權)人:上海數果科技有限公司
    類型:發明
    國別省市:上海,31

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 中文午夜人妻无码看片| 亚洲AV无码一区二区三区国产| 国产精品无码AV一区二区三区| 成人无码一区二区三区| 人妻AV中出无码内射| 亚洲中文字幕久久无码| 一本大道无码日韩精品影视_| 国产在线无码精品电影网 | 日韩精品无码免费专区午夜 | 日韩精品无码久久一区二区三| 狠狠躁天天躁无码中文字幕| 久久久久无码精品国产| 久久亚洲AV无码西西人体| 亚洲日韩一区二区一无码| 亚洲中文字幕久久精品无码APP| 西西大胆无码视频免费| 亚洲2022国产成人精品无码区| av无码东京热亚洲男人的天堂| 98久久人妻无码精品系列蜜桃| 久久中文字幕无码专区| 日韩精品成人无码专区免费| 无码无遮挡又大又爽又黄的视频| 国产精品无码专区在线观看| 加勒比无码一区二区三区| 精品无码人妻一区二区三区品 | 久久无码av亚洲精品色午夜| 久久亚洲AV成人无码| 色窝窝无码一区二区三区 | 无码专区人妻系列日韩精品少妇 | 亚洲成A人片在线观看无码不卡| 国产日产欧洲无码视频| 97在线视频人妻无码| 亚洲国产精品无码久久九九大片| 日韩免费无码一区二区三区| 亚洲国产精品无码久久一区二区 | 无码av中文一区二区三区桃花岛| 精品久久无码中文字幕| 精品无码一区二区三区在线| 久久久无码人妻精品无码| 人妻少妇偷人精品无码| 亚洲色av性色在线观无码|