精通 C/C++语言,熟练使用 QT,JAVA,PYTHON 等主流开发语言,精通常用的数据结构和算法,精通多进程,多线程编程,SOCKET 网络编程。有丰富的项目开发经验,理解面向对象的编程思想。
熟悉 linux 系统内核,具有多个 linux 环境下的软件系统开发经验
熟练使用 linux 常用命令,熟练掌握 makefile 文件规范,熟练使用 gdb 调试工具,熟练编写 shell 脚本和数据库脚本。
熟悉 tcp/ip 协议栈,包括各类网络应用层协议 HTTP,FTP,DNS,CDN,DHCP,网络路由协议 RIP,OSPF,BGP,NETCONF,Modbus,文件系统协议 NFS,FS,物联网协议 WIFI,ZIGBEE,蓝牙等。熟悉 YANG,schema 模型和 GRPC 开源框
架。
熟练使用 GIT SVN,熟悉代码开发规范和流程,版本控制等规范。
熟悉常见的设计模式,熟悉软件敏捷开发流程,能够针对具体业务快速完成软件需求分析和软件系统架构。
熟练掌握 sql 语言,熟练操作 mysql,oracle,redis 数据库。
熟悉大数据开发环境及 hadoop,flume,kafka,redis 等开源组件,熟悉消息中间件,高并发高性能平台,熟悉常用数字图像处理算法,熟悉图像测量相关知识,能够使用 opencv 库开发,有基于图像处理的三维测量和 RFID 相关项目经验
业务智能网关是存在于服务器(Internet)与客户端(GGSN)之间的一个网元,主要功能是对无线网络上的数据包进行协议分析,根据协议类型匹配相应的规则,规则中规定了对某种协议所需要执行的动作(例如流量速率控制,数据放行或者阻断等),配置规则后进行进行相应的控制,主要包括对数据传输速度的控制,数据流量大小时长的统计以及计费,起到了一个类似智能代理服务器的功能,整个系统涵盖从驱动层网卡数据收发到应用层协议控制,涉及 tcp/ip 中常用的协议类型如 http,ftp,bt 等。
功能模块: 网卡收发数据,协议解析,规则下发,规则执行,业务控制,话单处理
技术实现: 整个智能网关系统的架构是基于消息驱动的,系统中的多个进程和线程之间采用消息交互方式进行通信,每个线程从自己消息队列中取出消息根据不同消息号进行相应处理。项目中用户和数据量比较大,开辟了共享内存来方便进行管理,其中主要定义了基于流上下文和用户上下文两个重要的数据结构,其中流上下文是以五元组(ip 地址,端口号,协议类型)作为键值,标示用户上网的一个唯一链路。用户上下文以用户源 ip 地址作为键值,标识示了一个用户唯一 id。两个数据区采用环形队列数据结构进行分配和释放。在系统运行中,每个用户可以对应多个流,每个流有自己的协议类型,通过对这两个基本数据区的分析和处理,建立起用户和流之间的对应关系,极大的方便了业务处理和用户管理。
在项目中负责了多个主要模块的代码开发和测试。主要包括了对数据包的预处理获取流与规则等基本信息(主要是 ip 层和传输层的信息),然后将数据包发送给协议进程解析出数据包应用层协议基本类型(进程间消息交互),根据获取到的协议类型进行业务套餐(根据手机用户上网的号码段来定义的)的匹配,最后根据匹配到套餐进行相应的业务控制(包括流量控制和阻断等功能,包括了HTTP FTP BT 等常用协议类型),由于主处理流程消息量比较大,并且应用层主要是 HTTP 协议类型逻辑比较复杂,存在时序问题,因此引入了状态机机制,根据当前的状态控制业务走向,成功的完成了大量逻辑复杂的业务功能。在将数据发送后对相应的时长和流量进行了统计,并将结果发送给在线计费模块实现在线计费。项目上线后每台业务处理机器支持在线用户 10 万个,网络吞吐率 100Gbps。后续又开发了业务系统分析,黑白名单,业务跟踪,话单分析等相关模块和工具,后期对代码进行了优化,使业务流程更加清晰,方便了后续新功能的添加。
在项目中负责了多个主要模块的代码开发和测试。主要包括了对数据包的预处理获取流与规则等基本信息(主要是 ip 层和传输层的信息),然后将数据包发送给协议进程解析出数据包应用层协议基本类型(进程间消息交互),根据获取到的协议类型进行业务套餐(根据手机用户上网的号码段来定义的)的匹配,
网络数据遥测系统软件设计开发,主要实现使用订阅发布模式实现了对网络配置数据的采集,利用 GPB 对数据进行编码,使用 GRPC 进行通信将数据分发至服务端。系统在 linux 环境下采用 c 语言开发实现,多进程多线程架构设计,数据库为 oracle,该项目实现了对网络通信流量遥