hxndg Blog

Thinking will not overcome fear but action will.

USTACK系统是怎么做到高性能的

不能不学习啊

USTACK系统是怎么做到高性能的 前言 这东西写起来实际上并不简单,但是毕竟都做这个了,难免得研究研究。就好像评价一台电脑,不是单纯说显示器好,那这台电脑就无与伦比了。需要多个方面来评价,还要综合各种类别。 总述 USTACK是个什么系统 USTACK系统本质来说就是个综合Reactor和Proactor模式的服务器,以下几个方面的东西只针对TLS层面和系统层面,不能保证面面俱到,点列...

内存学习(3)--锁(们)

整理下思路

内存学习(3) 内存过程的锁(们) 我们今天来看看do_page_fault中的锁,为什么要看这东西?平时老说什么死锁,互相抢占,不释放如何如何。我们来看看linux怎么避免了死锁的出现,这里我们假设面对的是SMP机器,我记得最早开始看的时候就很疑惑,首先每个线程如果都申请一块内存,怎么操作的?然后就是说页表是怎么同步的?这都是我当时的问题。 一开始预取mm->mmap_s...

OPENSSL源码阅读

OPENSSL的多线程

OPENSSL源码阅读 前言 原先写的几个都只是写了自动机,今天来看看多线程和异步。我们今天重点就是看看OPENSSL怎么做,这么做的好处与问题,锁的粒度等问题。实际上服务端s_server并不支持多线程,libcrypto支持多线程,所以对于S_SERVER我们重点看异步的做法,看libcrypto的多线程到底做了些什么。 前置知识 OPENSSL的ASYNC JOB就是使用协程+pe...

TLS自动机实现时一些不错地方

洋洋得意.jpg?

TLS自动机实现时一些不错地方 前言 实现TLS自动机的时候我们实际上做了不少东西,有不少地方都挺巧的。2020/12/9更新了一下,因为忘得差不多了,补充下自动机的代码。 ## SESSION方面 对于SESSION方面的优化我们做了两点 TLS1.3 VS方面我们直接放弃了SESSION ID的做法,直接用SESSION TICKET,这样子服务端的存储大大缓解,只需要每次客...

到底该怎么写自动机

闲言碎语

如何写TLS自动机? 0 前言 前段时间这个写一半嫌累,就暂停了,今天补上。这里的TLS自动机设计和总结不会设计加到线程安全,因为那个纯属于实现级别。我同样附加上了安全开发和安全运营的内容,如果还有大量的总结和拓展,那么我会拆成单独的文章。 1 TLS自动机设计理念 1.1 理念 设计时,我们的理念就三种: 简单 分层 安全 这三条理念说起来都很短的,但是实际上的...

内存学习(10)

从do_page_fault说起

内存学习(10) 前言 内存这块我很早之前看过,但是一直没怎么做记录。这次姑且记录下这次的阅读的书籍分别为:《Linux内核0.11完全注释》,《Linux内核源代码情景分析》,《ATCP内存实现》(这个是我司的代码管理)。啊,对了,这次我同时在看SICP的东西,希望顺便打打基础。当然,纸上得来终觉浅,绝知此事要躬行,还是从已经分配好的内存看起吧,从用户态的开始看。有一点需要赘述一下,关于...

内存学习(1)

从do_page_fault说起

内存学习(1) 前言 内存这块我很早之前看过,但是一直没怎么做记录。这次姑且记录下这次的阅读的书籍分别为:《Linux内核0.11完全注释》,《Linux内核源代码情景分析》,《ATCP内存实现》(这个是我司的代码管理)。啊,对了,这次我同时在看SICP的东西,希望顺便打打基础。当然,纸上得来终觉浅,绝知此事要躬行,还是从已经分配好的内存看起吧,从用户态的开始看。 絮叨几句 简单来说li...

C语言宏的展开

C语言如何展开宏

C语言的宏 前言 我这里实际上只是记录,不如直接看《宏定义黑魔法-从入门到奇技淫巧》知乎上的回答。 C语言的宏有两种类型,一种是obj-like,另一种是func-like。这两者最大的区别就是obj-like没有括号,没有变量。而func-like有括号,有变量。平时写代码的时候常用的是前一种,代码一般为。另一种写在后面,当然这里写的第二种宏的计算方式实际上是错误的,很脆弱。 #de...

还要学啥

还要学啥呢

一些要学的东西 OCR和AI结合,识别文字等内容 医疗AI kubernetes的安全体系 系统设计 redis开发运维学习 music betty-boop jazz pop 背景音乐,黄金时代 选择很多, 长期目标 我正在计划以《天才的编辑》为基础写个小剧本,你是一个编辑,新手出道的编辑,你能不能再维持生活,养家,亲人之间。尽量发掘更多的新人作...

OPENSSL源码阅读(8)

读取客户端Finished报文

OPENSSL源码阅读(8) 前言 上一回说了非复用状态/完整握手状态下发送Finised消息时自动机的变化,这次我们来说说服务端读取客户端Finished时发生了什么。有一点需要注意,这里并不区分客户端是不是复用连接,对于完整握手和复用连接服务端读取finished消息的处理流程都一致。 从Finished发送完毕说起 我们上次讲了,发送Finished之后重新进入写自动机调用trans...