[发明专利]一种基于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.vipzhuanli.com/pat/books/202110247532.5/2.html,转载请声明来源钻瓜专利网。