[發明專利]一種數據包轉發方法、裝置及設備有效
| 申請號: | 202011373543.X | 申請日: | 2020-11-30 |
| 公開(公告)號: | CN112565381B | 公開(公告)日: | 2022-05-31 |
| 發明(設計)人: | 周倩倩;易盼 | 申請(專利權)人: | 杭州迪普科技股份有限公司 |
| 主分類號: | H04L67/1004 | 分類號: | H04L67/1004;H04L69/16;H04L67/1008;H04L67/146 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 王茹 |
| 地址: | 310051 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據包 轉發 方法 裝置 設備 | ||
本申請實施例公開了一種數據包轉發方法、裝置和設備。在本申請中,可以在通過與客戶端之間已建立的TCP長連接接收到TCP數據包時,從TCP數據包中的TCP數據字段中按照順序查找到指定長度標識起始位置對應的長度標識位置,將查找到的長度標識位置之后的N個bit的數據確定為一個消息數據,最后將確定出的各個消息數據分別轉發到各個消息數據對應的目標服務器,其中不同消息數據對應的目標服務器相同或不同,最終通過將一個TCP數據包中的各個消息數據轉發到多個目標服務器,實現了對TCP長連接進行負載均衡。
技術領域
本申請涉及通信技術領域,特別涉及一種數據包轉發方法、裝置及設備。
背景技術
互聯網中多個用戶可以在客戶端上通過統一的訪問入口進入一個大型開放的平臺上,并在這個平臺上請求不同的服務。當用戶量過大時,如果將為用戶提供的所有服務搭建在一臺服務器上,一臺服務器承受不了這么多服務的壓力,所以為了減輕單臺服務器壓力,將部署多臺服務器為用戶提供服務。
在部署多臺服務器為用戶提供服務的情況下,客戶端和服務器之間如果通過TCP長連接通訊,TCP長連接一旦分配完成后,相關技術中客戶端和服務器之間的對應關系是固定的。如果某些客戶端的基于TCP協議的請求的TCP數據包特別多,由于中間的負載均衡設備無法干預TCP數據包的傳輸,所以這些TCP數據包也只會傳輸到和與它對應的服務器,這時會出現該服務器繁忙,但其他服務器空閑的情況。
所以為了解決上述負載不均衡的情況,亟需一種能夠針對TCP長連接進行負載均衡的TCP數據包轉發方法。
發明內容
本申請公開了一種數據包轉發方法、裝置及設備,以實現針對TCP長連接進行負載均衡。
根據本申請實施例的第一方面,提供一種數據包轉發方法,該方法應用于負載均衡設備,包括:
通過與客戶端之間已建立的TCP長連接接收TCP數據包,所述TCP數據包包括TCP頭部和TCP數據字段,所述TCP數據字段包括至少一個消息數據的指示信息;所述指示信息包括長度標識;
從所述TCP數據字段中按照順序查找到指定長度標識起始位置對應的長度標識位置,將查找到的長度標識位置之后的N個bit的數據確定為一個消息數據,所述N為所述長度標識位置上用于表示長度的長度值;
將確定出的各個消息數據分別轉發到各個消息數據對應的目標服務器,不同消息數據對應的目標服務器相同或不同。
可選的,所述長度標識位置占用所述指定長度標識起始位置之后的K個bit,K大于1。
可選的,所述指定長度標識起始位置和對應的所述長度標識位置處于同一個字節;
所述將查找到的長度標識位置之后的N個bit的數據確定為一個消息數據包括:
將指定長度標識起始位置所處字節之后的N個bit的數據確定為一個消息數據。
可選的,所述將確定出的各個消息數據分別轉發到各個消息數據對應的目標服務器,包括:
輪詢確定出的各個消息數據;
將輪詢到的消息數據確定為當前消息數據,從已有的各目標服務器中選擇負載低的一個目標服務器作為當前消息數據對應的當前目標服務器,將當前消息數據轉發至當前目標服務器;
若確定出的各個消息數據中還存在未被輪詢的消息數據,則繼續輪詢未被輪詢的消息數據,返回將輪詢到的消息數據確定為當前消息數據的步驟。
可選的,將確定出的各個消息數據分別轉發到各個消息數據對應的目標服務器,包括:
按照已獲得的各目標服務器的負載比例對確定出的各個消息數據進行劃分得到對應的M個消息數據組,所述M為目標服務器的數量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州迪普科技股份有限公司,未經杭州迪普科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011373543.X/2.html,轉載請聲明來源鉆瓜專利網。





