type
Page
status
Published
slug
about
summary
关于我
tags
category
icon
fas fa-yin-yang
password
new update day
Property
Oct 25, 2023 01:30 AM
created days
Last edited time
Oct 25, 2023 01:30 AM
详细信息点击箭头进行展示!
一、个人信息
- 姓名:糖醋鱼
- 性别:男
- 邮箱:me@expoli.tech
- GitHub:expoli
- Docker hub:tangcuyu
糖醋鱼,郑州大学、信息工程学院 2021 级电子信息工程专业在读研究生,2016 级郑州大学双足机器人创新实验室、体操项目组负责人。
二、个人技能
- 熟悉 C/C++ 语言,具备独立进行 socket 网络编程与多线程编程的能力。
- 熟悉 K8s 与 Docker 容器技术,能够独立完成应用程序的容器化与 k8s 微服务云化部署。
- 熟悉常用数据结构,如链表、栈、二叉树、队列等,同时熟练掌握排序算法、二分查找等常用算法。
- 熟悉计算机网络模型,深入理解 TCP/IP、HTTP/HTTPS 等网络协议,了解 TCP 三次握手、四次挥手、流量控制、拥塞控制等特性。
- 能够使用 gdb 与 qemu 进行Linux 操作系统开发,比如进行系统调用修改与内核模块的编写,以及简单的内核配置优化。
- 熟练掌握 Git,并且曾向多个开源项目贡献过修改。此外,还向 Linux 内核提交过源码补丁。
三、学校经历
四、实习经历
上海观安信息技术股份有限公司 - 网络安全工程师
- 2023年07月25 - 2023年08月23
- 参与某运营商2023国家护网行动,担任应急处置组成员,对监测组上报的设备高危告警,进行人工分析研判并给出处置建议。
- 参与溯源工作,对攻击IP进行威胁画像与人员信息定位,工作期间完成了一起对攻击者自然人的溯源成果。
北京启明星辰信息安全技术有限公司 - 网络安全工程师
- 2022年06月 ~ 2022年09月
- 参与烟台某银行2022国家护网行动,担任应急响应组成员,对监测组上报的设备高危告警日志,进行人工手动分析研判,判断其威胁性大小并提出处理建议。
- 负责现场监控组、分析组、处置组和溯源组之间的沟通和协调工作,并参与溯源分析工作、记录攻防日志编写相关的成果报告。
郑州大学网络管理中心 学生运维组组长
- 2018-09-01 ~ 2019-06-01
- 负责有线网络设备(交换机)的维护以及人员工作排班。
- 负责解决老师与同学在工单系统中报修的问题。
- 负责交换机的故障排查与恢复运维工作。
- 负责处理在校学生提交的网络连接问题工单,进行网络端口与故障网线的更换。
五、项目经历
CS144 LAB 使用 C++ 实现并完善 TCP/IP 协议栈(Stanford cs144 spring 2023)- 项目开发者(所用语言:C++)
- 2023-05 ~ 2023-06
- 项目描述:使用现代 C++ 语言,循序渐进地搭建出整个 TCP/IP 协议栈,实现 IP 路由以及 ARP 协议,最后利用你自己的协议栈代替 Linux Kernel 的网络协议栈和其他学生的计算机进行通信。
- 主要工作:
- 实现带有滑动窗口机制的字符重组器保证 TCP 字节流的按序到达,最终实现速率为 10GB/S。
- 实现 TCP 的超时重传与拥塞控制机制,通过指数退避算法、零窗口探测机制等机制实现流量控制避免网络拥塞。
- 实现 ARP 解析与缓存机制,实现 ARP 路由表的自动学习算法与超时更新算法,同时追踪 ARP 数据包的状态,实现超时重传。
- 实现了路由选择协议,通过实现路由表和最长匹配路由算法,实现 IP 数据包的正确寻址。
- 问题与解决方案:
- 使用 perf 对实现进行采样分析,进行针对性的性能优化。通过 unordered_map 对追踪失序字节流,达到查找时间 O(1) 性能。
- SYN 与 FIN 携带数据与不携带数据的处理,SYN 与 FIN 虽然会消耗一个序号,但是在携带数据的时候数据与握手包共用序号。
- 使用三个智能指针链表,追踪与同步数据包的状态信息(未发送、已发送、未确认),实现高性能的超时重传与拥塞控制机制。
- 为避免通信双方发生死锁,在窗口为 0 的时候,将其作为 1 进行数据的处理,同时不能进行 ROT 扩容操作。
- 个人收获:
- 通过这个项目,深入地了解了网络协议的实现细节和原理,加深了 TCP/IP 协议栈的理解。体会到 TCP/IP 中的分层思想,深刻认识到在开发过程中,代码的可扩展性、可维护性和接口的稳定对项目的成功关重要。
MIT 6.S081 lab xv6 操作系统功能拓展 - 项目开发者(所用语言:C)
xv6-labs-2022
expoli • Updated Jul 19, 2023
- 2023-07 ~ 2023-07
- 项目描述:这是 MIT 6.S081 课程在 RISC-V 平台上实现的一个操作系统实验项目,通过由浅入深地了解操作系统 XV6的实现,掌握操作系统编程,主要工作体现在 XV6 操作系统的功能拓展。
- 主要工作:
- 添加 trace 系统调用,对系统调用的使用进行拦截追踪,同时支持掩码配置模式,只追踪特定系统调用,并支持系统调用参数输出。
- 添加 sysinfo 系统调用,对内核的能够运行的进程总数、现在正在运行的进程数、内存总量与使用量进行统计。
- 实现系统调用加速,针对特定系统调用进行加速设计,减少用户态和内核态的切换从而实现加速。
- 设计并实现内核工具函数 vmprint,完成对特定地址页表的三层遍历输出。
- 设计并实现进程的 COW fork 机制,提高内存利用率和子进程的创建速度。
- 问题与解决方案:
- trace 系统调用,用户态 trace 的使用时调用系统调用 fork 执行特定命令并进行追踪,为实现对子进程的追踪,将掩码字段添加到 PCB 中,子进程 fork 后在运行的时候会从父进程复制对应掩码。
- 系统调用的参数是不确定的,每个系统调用的参数数目都不一样,需对系统调用进行分析统计进行静态配置,完成调用参数的输出。
- COW fork() 使得释放实现用户内存的物理页的过程变得复杂。给定的物理页可能被多个进程的页表引用,通过对物理页采用引用计数机制并动态更新,并且仅当最后一个引用消失时才应释放,实现了进程的 COW fork()。
- 个人收获:
- 在完成 MIT 6.S081 实验项目的过程中,我学会了如何进行操作系统的开发与调试,如何设计和实现操作系统的 COW fork 机制,并锻炼了我的分析和解决问题的能力。
hit-oslab (Linux-0.11 操作系统功能拓展)- 项目开发者(所用语言:C)
- 2023-06 ~ 2023-07
- 项目描述:在Linux 0.11上进行操作系统 kernel 的定制与修改,完成系统引导、系统调用添加、进程运行轨迹跟踪、地址映射跟踪、信号量的实现与应用。
- 主要工作:
- 添加系统调用 whoami 与 iam,同时实现用户态程序实现用户名的设置与输出。
- 在 Linux 0.11 上实现 POSIX sem 信号量与共享内存 shm 机制,同时实现用户态程序进行运行验证。
- 在Linux 0.11上实现一个 proc 文件系统,动态察看内核中的状态,如进程、文件系统 inode 状态。
- 问题与解决方案:
- 信号量机制实现时,多个进程之间使用信号量进行同步时,释放时会多次调用 unlink 系统调用,等待已经释放的信号量会造成死锁,通过添加引用计数功能解决了这个问题。
- 共享内存实现时,进程运行完成退出时会将对应申请的内存区域进行释放,多个进程共享时就会引发 free free 错误,通过对内存添加引用计数功能解决了这个问题。
- 个人收获:
- 掌握了操作系统开发基本过程,掌握了内核模块的开发过程,体会到了并发进程的实现掌握了进程同步(互斥)技术的实现,体会到了虚拟文件系统概念,通过项目实践对X86的内存寻址机制有了相对清晰的认识。
面向云计算中微服务的非侵入式负载监测与预测方法研究 - 研究课题
- 2022-03 ~ 至今
- 项目描述:此课题基于随需而变的网络协同制造平台架构及整体解决方案研究,国家重点研发计划课题,本课题通过非侵入式监测方法监测微服务的运行状态,对未来负载进行预测,提前进行资源优化配置,保证应用程序能够在需求旺盛的时候正常运行。有助于提高平台的边云协同能力、资源利用率,并帮助企业更好地进行资源规划,提高竞争力。
- 主要工作:
- 基于 eBPF 实现对系统和应用运行状态的非侵入式收集,解决协同制造平台涉及多个企业的异构微服务,运行数据收集难。难以掌握微服务运行状态的问题。
- 基于应用历史运行状态数据,使用时序序列预测技术对应用未来可能的访问量进行预测,解决默认 Kubernetes 只提供基于 CPU 与内存的反应式阈值缩放,存在滞后性的问题。
- 研究关键微服务的判定算法,从而进行精准缩放,解决微服务系统中并存着大量的服务,交互非常复杂,一个性能异常可能导致多个服务同时出现多个异常,难以准确地确定需要扩展的服务的问题。
- 个人收获:
- 在此次课题研究中,深入了解了协同制造平台架构及整体解决方案,并学习了如何使用 Kubernetes 进行容器微服务编排。同时,在研究过程中,掌握了 eBPF 实现对系统和应用运行状态的非侵入式收集技术和时序序列预测技术等相关知识。
使用 C++ 实现的多线程 web 服务器 - 项目开发者(所用语言:C++)
TinyWebServer
expoli • Updated Apr 16, 2023
- 2023年03月 ~ 2023年04月
- 项目描述:使用 C++ 语言,通过线程池、状态机与 Linux epoll IO 复用机制等技术,实现的一个多线程 web 服务器。
- 主要工作:
- 通过使用线程池技术,提高服务器性能,减少线程的创建与回收操作。
- 使用 epoll IO 复用机制,实现事件驱动服务器的状态,让其在不同的状态中进行改变从而实现 HTTP 协议的解析与处理。
- 通过在HTTP连接中添加连接类型与反向代理转发表属性,实现反向代理功能。
- 使用回调函数与 linux 文件系统变化通知机制(inotify),实现配置的热加载更新。
- 个人收获:
- 深刻了解到状态机的抽象思想在实际工程中的应用。深入理解了epoll IO复用机制,与事件驱动型应用程序的特性。同时深刻认识到在网络开发项目中,异常处理对代码的健壮性和可靠性的重要性。
六、荣誉奖项
国际级
- 2019-04-21 世界大学生超级计算机竞赛 (简称 ASC19)银奖
- 2019-04-17 2019 ROBOCUP 机器人世界杯中国赛-季军
省级国家级
- 2021-12 金盾信安杯-三等奖
- 2020-08 强网杯-强网先锋奖
- 2018-08-12 全国机器人大赛-竞步体操组-一等奖(季军)
- 2018-08 第五届河南省大学生机器人竞赛-竞步体操组-一等奖
- 2021-11 研究生国家学业奖学金
- 2022-11 研究生国家学业奖学金
校级
- 2017-11-30 国家励志奖学金
- 2017-12 优秀学生干部
- 2018-11 校级三等奖学金
- 2018-09 信息工程学院 2018年暑期社会实践先进个人
- 2018-12 郑州大学社会服务先进个人
- 2019-03 信息工程学院 2019年寒假社会实践先进个人
- 2019-04 挑战杯校级特等奖(省级二等奖)
- 2019-11 年校级二等奖学金
未完待续。。。。
七、学术成果
论文
wAdvMTD: A Mitigation to White-box Adversarial Examples Using Heterogeneous Models and Moving Target Defense
发明专利
- 一种非侵入式应用程序运行状态监测方法、装置及设备
- 申请号:202310605139.8 发文序号:2023052601859310 (2023 年 05 月 26 日)
- 一种基于人体步态特征大数据的疾病自动跟踪、治疗及推送系统.CN109545374A(二作)(2018-11)
软件著作权
- 非侵入式微服务运行状态监测系统(2023-06-29)
- 基于边缘计算的火焰识别系统(2022-03-21)
八、自我描述
在开发过程中,对待问题态度认真,遇到Bug能够耐心地解决。善于利用GitHub和官方文档,具备较强的责任心,能够尽心尽责地完成分配的任务,并及时反馈和协调组内成员之间的矛盾和问题。性格开朗,能够有效地缓解团队内部的紧张氛围,增强团队合作精神。