[發明專利]一種基于F-Stack和Nginx實現動態代理的方法和系統有效
| 申請號: | 202110247532.5 | 申請日: | 2021-03-06 |
| 公開(公告)號: | CN113098925B | 公開(公告)日: | 2022-03-11 |
| 發明(設計)人: | 王兵權;馬驥;冀博;李昭熹;焦小濤 | 申請(專利權)人: | 鄭州信大捷安信息技術股份有限公司 |
| 主分類號: | H04L67/565 | 分類號: | H04L67/565;H04L45/74;H04L45/745;H04L69/22 |
| 代理公司: | 鄭州大通專利商標代理有限公司 41111 | 代理人: | 張立強 |
| 地址: | 450000 河南省*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 stack nginx 實現 動態 代理 方法 系統 | ||
本發明提供一種基于F?Stack和Nginx實現動態代理的方法和系統。該方法包括:接收數據包,將數據包放到網卡的對應隊列上;針對隊列上的每個數據包,使數據包先經過ipfw機制的hook函數處理,并查找是否存在連接跟蹤表:如果存在連接跟蹤表,則按照代理規則改寫數據包中的源地址和目的地址;如果不存在連接跟蹤表,則按照代理規則新建連接跟蹤表,以使處理后續數據包查找連接跟蹤表時所用;將改寫源地址和目的地址成功的數據包交由FreeBSD協議棧處理;并進一步判斷數據包是否交由Nginx處理,具體為:將匹配到Nginx偵聽地址vip+vport的數據包交由Nginx處理,Nginx處理完畢后的數據包再次交由FreeBSD協議棧轉發;對于數據協議的數據包,無需交由Nginx處理,直接由FreeBSD協議棧做路由查找轉發處理。
技術領域
本發明涉及互聯網通信技術領域,尤其涉及一種基于F-Stack和Nginx實現動態代理的方法和系統。
背景技術
傳統Linux 內核ALG方式支持SIP、FTP、RTSP協議代理,但由于kernel本身實現機制的鎖\中斷\上下文切換等導致性能低下,不適合大并發、高吞吐應用場景。
DPDK采用大頁、ring無鎖隊列、輪詢方式數據包處理,以及網卡多隊列結合多核等提升數據包轉發性能,但其沒有對TCP/IP協議棧提供支持。而開源的F-Stack集成了DPDK和用戶態協議棧FreeBSD以及Nginx等,方便用戶實現自身業務邏輯。另外SIP、FTP、RTSP協議的共同點是由信令協議和數據協議組成,信令中協商數據傳輸使用IP+Port,數據傳輸時使用信令中協商的IP+Port通信。基于上述,亟需一種新的代理方案,以實現SIP、FTP、RTSP等協議的代理功能,且能滿足大并發、高吞吐應用場景。
發明內容
針對傳統Linux 內核ALG方式不適合大并發、高吞吐應用場景的問題,本發明提供一種基于F-Stack和Nginx實現動態代理的方法和系統。
一方面,本發明提供一種基于F-Stack和Nginx實現動態代理的方法,包括:
步驟1:接收數據包,將所述數據包放到網卡的對應隊列上;所述數據包包括來自客戶端的請求數據包和來自服務端的響應數據包;
步驟2:針對隊列上的每個數據包,使所述數據包先經過ipfw機制的hook函數處理,根據所述數據包中五元組信息查找是否存在連接跟蹤表:如果存在所述連接跟蹤表,則按照代理規則改寫所述數據包中的源地址和目的地址;如果不存在所述連接跟蹤表,則按照代理規則新建連接跟蹤表,以使處理后續數據包查找連接跟蹤表時所用;
步驟3:將改寫源地址和目的地址成功的數據包交由FreeBSD協議棧處理;并進一步判斷數據包是否交由Nginx處理,具體為:將匹配到Nginx偵聽地址vip+vport的數據包交由Nginx處理,Nginx處理完畢后的數據包再次交由FreeBSD協議棧轉發;對于數據協議的數據包,無需交由Nginx處理,直接由FreeBSD協議棧做路由查找轉發處理。
進一步地,在步驟2之前還包括:
采用共享內存方式將所述代理規則下發給所有worker進程;
對應的worker進程收到客戶端或服務端的數據協議的數據包時,按照所述代理規則改寫所述數據包中源地址和目的地址后再交由FreeBSD協議棧做轉發處理。
進一步地,還包括:
步驟A1:預設服務端查看視頻時的視頻查看信令數據包攜帶的媒體接收地址為serip+recv_media_port;
步驟A2:Nginx改寫服務端發送的視頻查看信令數據包中媒體接收地址為vip+recv_media_vport,并將其轉發給客戶端;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州信大捷安信息技術股份有限公司,未經鄭州信大捷安信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110247532.5/2.html,轉載請聲明來源鉆瓜專利網。





