[發明專利]一種用于NAT網絡中服務器向客戶端發送消息的方法在審
| 申請號: | 201611164543.2 | 申請日: | 2016-12-16 |
| 公開(公告)號: | CN106713437A | 公開(公告)日: | 2017-05-24 |
| 發明(設計)人: | 陳明;高林武;馬建東 | 申請(專利權)人: | 江蘇神州信源系統工程有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/12 |
| 代理公司: | 北京連和連知識產權代理有限公司11278 | 代理人: | 劉小峰 |
| 地址: | 211899 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 nat 網絡 服務器 客戶端 發送 消息 方法 | ||
技術領域
本發明涉及計算機網絡通信領域,并且更具體地涉及一種用于NAT網絡中服務器向客戶端發送消息的方法。
背景技術
客戶端與服務器之間的通信是基于HTTP(超文本傳輸協議)的通信,而HTTP是無狀態的通信協議,每一次請求-響應都是基于一個新建立的HTTP連接,這就使得服務器主動通知客戶端成為一個難點。
目前,主流的解決方式有以下兩種:一是客戶端輪詢技術,即客戶端周期性地主動訪問服務器的公網IP地址,以獲取服務器數據狀態的變化,此種方式的問題是:如果服務器的業務數據在兩次連續的輪詢的請求過程中沒有變化,后一次請求的做工實際為負數——浪費了服務器端的帶寬,而且沒有獲得有效負載;而且,客戶端輪詢過程中的定時器間隔時間參數也是一個難把握的問題,由于需要及時獲取服務器端的業務數據狀態,這個定時間隔參數設置不宜過長,但是過短又會頻發第一個問題。
另一種方式是:客戶端與服務器之間提供一個雙向的、在一條TCP通道中的全雙工的通信,即客戶端與服務器之間建立長連接,此種方式的問題是:需要客戶端與服務器之間通過Ping-Pong進行雙向的心跳機制,來保證鏈路的可靠性,實現復雜,同樣也造成了服務器端的帶寬浪費。
發明內容
針對上述現有技術中存在的問題,本發明的目的在于提供一種用于NAT網絡中服務器向客戶端推送消息的方法,其通過在服務器和位于NAT網關后的客戶端之間建立UDP通信通道來實現服務器實時向客戶端推送數據的功能。
為了實現上述目的,本發明采用的技術方案如下:
一種用于NAT網絡中服務器向客戶端發送消息的方法,其步驟包括:
在服務器中開通UDP-S服務以與客戶端通信;
客戶端通過向服務器的UDP-S服務發送UDP數據包以建立本地緩存信息表;
服務器根據UDP數據包判斷客戶端是否位于NAT網關限定的內網中,并返回客戶端標識;
客戶端響應客戶端標識以完成服務器和客戶端之間的UDP通信通道的建立;
服務器根據本地緩存信息表的信息調用UDP-S服務通過UDP通信通道向客戶端發送消息。
根據本發明的一個實施例,方法進一步包括:客戶端通過服務器的TCP-S服務將客戶端的ID號、內網IP地址和內網UDP監聽端口發送給服務器并保存在服務器的數據庫中。
根據本發明的一個實施例,方法進一步包括:在客戶端的ID號、內網IP地址和內網UDP監聽端口中的任一項發生改變時,客戶端通過服務器的TCP-S服務將客戶端的ID號、內網IP地址和內網UDP監聽端口發送給服務器以更新服務器的數據庫。
根據本發明的一個實施例,方法進一步包括:在客戶端的ID號、內網IP地址和內網UDP監聽端口中的任一項發生改變時,客戶端通過服務器的UDP-S服務將客戶端的ID號、內網IP地址和內網UDP監聽端口發送給服務器以更新服務器緩存信息表
根據本發明的一個實施例,UDP數據包包含客戶端的ID號、內網IP地址和內網UDP監聽端口。
根據本發明的一個實施例,本地緩存信息表包含客戶端的ID號、內網IP地址、內網UDP監聽端口、公網IP地址以及公網端口。
根據本發明的一個實施例,所述方法進一步包括:服務器從UDP數據包中獲取客戶端的ID號、內網IP地址和內網UDP監聽端口,并根據ID號在服務器緩存信息表中找到客戶端的公網IP地址和公網端口,如果內網IP地址和公網IP地址一樣并且內網UDP監聽端口和公網端口一樣,則客戶端標識為0,反之,客戶端標識為1。
根據本發明的一個實施例,如果客戶端標識為0,客戶端停止向服務器發送UDP數據包;如果客戶端標識為1,客戶端每隔一定時間間隔通過向服務器的UDP-S服務發送UDP數據包。
根據本發明的一個實施例,ID號是通過計算客戶端的主板序列號和/或硬盤序列號而得到。
根據本發明的一個實施例,ID是在不能獲得客戶端的主板序列號和/或硬盤序列號的情況下通過計算客戶端的MAC地址而得到。
本發明具有以下有益效果:服務器端通過使用UDP-S服務推送機制解決了輪詢方式低效地消耗服務器的網絡帶寬和系統負載的問題。同時,由于服務器主動向客戶端發送消息,因此有很好的低延遲性。進一步,服務器端通過UDP-S服務維持與客戶端的UDP通信通道實現了通用的客戶端與服務器之間基于HTTP的通信,服務器向客戶端推送的任何數據都可以使用該UDP通信通道,而且UDP通信通道的建立更簡單。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于江蘇神州信源系統工程有限公司,未經江蘇神州信源系統工程有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611164543.2/2.html,轉載請聲明來源鉆瓜專利網。





