摘要:
之前写过一篇文章搞懂密码学基础及SSL/TLS协议,主要介绍了加密学的基础,并从整体上对SSL协议做了介绍。由于篇幅原因,SSL握手的详细流程没有深入介绍。本文将拆解握手流程,在消息级别对握手进行详细地介绍。还没有加密学基本概念的、或者不清楚SSL协议的基本情况的建议先看一下前面一篇的内容。另外,本 阅读全文
摘要:
SSL协议是现代网络通信中重要的一环,它提供了传输层上的数据安全。为了方便大家的理解,本文将先从加密学的基础知识入手,然后展开对SSL协议原理、流程以及一些重要的特性的详解,最后会扩展介绍一下国密SSL协议的差异、安全性以及TLS 1.3的关键新特性。 阅读全文
摘要:
本篇将通过一个例子,完整介绍OpenResty中Lua钩子的调用流程,包括初始化阶段的工作、新连接进来时如何进入钩子、I/O等待时如何出去、事件触发时如何恢复、钩子正常执行结束时的操作、钩子内出错的情况。 阅读全文
摘要:
OR最大的特点就是,将Lua协程与Nginx事件驱动模型及非阻塞I/O结合起来。使用户可以在handler中使用 **同步但是依然是非阻塞** 的方式编写其应用代码,而无需关心底层的协程调度以及与Nginx事件驱动模型的交互。
本文将先从总体上介绍OR的协程调度机制,然后结合源码以及Lua栈的情况来详细了解各个部分是如何实现的,包括其异常保护、协程初始化、协程的恢复和执行、协程的挂起、协程的执行结束、协程出错的情况。 阅读全文
摘要:
mmap是一个很常用的系统调用,无论是分配内存、读写大文件、链接动态库文件,还是多进程间共享内存,都可以看到其身影。本文首先介绍了进程地址空间和mmap,然后分析了内核代码以了解其实现,最后通过一个简单的demo驱动示例,加深对mmap的理解。 本博客已迁移至CatBro's Blog,那是我自己搭 阅读全文
摘要:
本文主要分享一个在压测Nginx反向代理服务过程中碰到的连接异常断开问题,包括问题的定位与复现,最后由这个实际问题引申聊一下Nginx的连接管理。 本博客已迁移至CatBro's Blog,那是我自己搭建的个人博客,欢迎关注。 本文链接 问题描述 问题是这样的,我们的Nginx服务是作为HTTP反向 阅读全文
摘要:
前段时间在做一些测试的时候接触到了Linux tc,因为需要对数据包添加延迟,用到了tc中的netem。添加简单的延迟非常简单,像这样一条命令就搞定了:$ tc qdisc add dev eth0 root netem delay 1s,你甚至不需要完全理解命令中参数的含义。但是当你想做一些更加特 阅读全文
摘要:
本文介绍CVE-2022 0778漏洞及其复现方法,并精心构造了具有一个非法椭圆曲线参数的证书可以触发该漏洞。 阅读全文
摘要:
前面已经支持了几种不同的方式添加断点,但是必须事先在代码中添加断点,在使用上不是那么灵活方便。本文将支持动态增删断点,只需要开一开始引入调试库即可,后续可以在调试过程中动态的添加和删除断点。事不宜迟,我们直接进入正题。 源码已经上传Github,欢迎watch/star😘。 本博客已迁移至CatB 阅读全文
摘要:
为了解决通过函数名称添加断点的不确定性,本篇我们将继续扩展断点的设置接口,支持通过包名来添加断点。因为包名相对更具确定性,配合行号可以进行精确定位。 阅读全文
摘要:
我们之前已经支持了通过函数来添加断点,并且已经支持了行号的检查和自动修正。但是通过函数来添加断点有一些限制,如果在当前的位置无法访问目标函数,那我们就无法对其添加断点。
于是,本篇我们将扩展断点设置的接口,支持通过函数名称添加断点,以突破这个限制。 阅读全文
摘要:
前面两篇我们对Lua调试器性能做了一个优化,本篇接下来继续来丰富调试器的特性。对断点行号进行检查与自动修正。 阅读全文
摘要:
本篇继续改进我们的Lua调试器,设法优化断点信息的数据结构,进一步提升性能。 阅读全文