TLS密码学
作者:taikulawo创建时间:2024-06-05
#net
前言 不管引入什么概念,什么算法,密码的核心永远不变 让原文获得密文容易,没有key的帮助反向解密出原文并正确很难 各种算法/机制都是在加强这句话 传输安全的目标:在不可靠的信道中建立可靠通讯 传输安全的三个要素:加密+校验+基于证书的身份识别机制,缺一不可 真实数据不会被看到:需要加解密 数据不被......
LVS流量转发模式
作者:taikulawo创建时间:2023-12-14
#net
LVS(linux virtual server) 做网关的几种转发模式 DR(direct routing) 路由收包后先给到同vlan的LB,LB根据负载均衡策略选择后端X,将dest mac改为X的mac地址,src-mac为网关mac。用于X的回程 核心一点:RS和LVS都使用同一个入口VI......
tcp-ip-rcv-skb-流程分析
作者:taikulawo创建时间:2023-11-16
#net#Kernel
tcp rev + tcp syn send ` devxmitskb (\root\codes\kernel-dev\linux\net\core\dev.c:3760) devqueuexmit (\root\codes\kernel-dev\linux\net\core\dev.c:4310)......
epoll触发机制分析
作者:taikulawo创建时间:2023-11-07已有2条讨论
#Kernel
目标: 分析 kernel 驱动收到后skb 如何唤醒epoll callback? accpet syscall 如何从listener socket spawn 子 socket? 一个极简epoll server程序(无法编译,只说明流程) `c // 创建listen......
e1000收包callstack分析
作者:taikulawo创建时间:2023-11-03
#Kernel
驱动层 驱动向内核注册 softirq,里面包含回调函数。驱动收到数据触发中断,kernel读取 `c _netifreceiveskblistptype(struct netdevice * origdev, struct packettype * ptprev, struct listhead ......
发包callstack分析
作者:taikulawo创建时间:2023-11-03
#Kernel
内核发包路径分析 触发方式 `bash curl http://baidu.com ` udp dns callstack 发包 tcp callstack ` devxmitskb (\root\codes\kernel-dev\linux\net\core\dev.c:3779) devqueu......
Kernel-Net
作者:taikulawo创建时间:2023-11-03
#Kernel
WI-FI 如何传输数据 无线通讯通过电磁波完成,发送端通过电流转换成电磁场,电磁场产生无线电波在空间中传递。利用这现象,将信息调制到无线电波上发送。计算机领域中,信息就是 0/1,通过电磁波的带宽表示(也可以用电磁波其他的概念组合表示,不一定是是带宽) 接收端利用电磁感应原理,通过解调还原成最初的......
mt7921-usb驱动注册分析
作者:taikulawo创建时间:2023-11-03
#Kernel
以联发科 mt7921 无线网卡驱动为例 > kernel mt7921/ 下有pci,usb接口的驱动,usb接口驱动入口是usb.c。手里有mt7921芯片的USB无线网卡,对应的驱动为mt7921u pci驱动为 mt7921e USB接口 MT7921 外观 usb PCI接口的MT7921......
Nginx 代码分析
作者:taikulawo创建时间:2022-08-18
#基础#net#C/C++
工作中涉及Nginx module开发,分析Nginx/tengine代码 nginx modules初始化 每个 module 必须有 ngxmodulet,且在module不同生命周期都支持 hook 函数 `c struct ngxmodules { ngxuintt ......
shadowsocks 协议分析及密码学基础
作者:taikulawo创建时间:2022-05-24
#net
shadowsocks 协议分析 基础知识 nonce 和 salt 区别 salt 只用一次,用于生成 cipher,和 salt 类似的概念叫initial vector(初始化向量),可认为 salt 和 iv 是等价的概念。 nonce 每次 encrypt,decrypt都需要,而且 d......
记录 Tun 透明代理的多种实现方式,以及如何避免 routing loop
作者:taikulawo创建时间:2021-08-01已有7条讨论
#net
从tun读出来后再写入tun,下次读还会将自己刚写入的packet读出来,如果设置默认路由是tun网卡,会导致死循环。下文会介绍解决routing loop的多种方法 > How does Virtual network device actually work ? > Virtual networ......
Rust生命周期
作者:taikulawo创建时间:2021-07-01
#Rust
生命周期的抽象 将LT想象成scope不太容易理解,可以将其想象成链。标注同一个的引用必须共存亡。通过 'a, 多个引用链在一起。 将引用比作绳子] https://doc.rust-lang.org/stable/book/ch10-03-lifetime-syntax.html https://......
Async状态机实现
作者:taikulawo创建时间:2021-06-18
#Rust
Rust中的状态机实现 我概括一下,引入 Future 必须解决自引用被swap的问题 Pin通过 提供 &Self 来让编译器进行入参检查,mem::swap(& mut self) 需要 mut 类型,所以编译器类型检查失败而退出 Future 任务会跨越线程执行,我们知道Future可以编译成......
Rust-Pin提出的必要性-以及我对Pin的认识
作者:taikulawo创建时间:2021-06-08
#Rust
我对Pin 的整体理解 - 为了解决unsafe场景下move问题 提出的必要性 - 不依赖Pin能否做到希望的 不被move ? Pin的作用是防止move,但如果程序员小心处理,那就不会出错。为什么还需要Pin呢? 既然在某些场景下move是错的,那作为安全的编程语言,就需要显式限制这些场景。不......
Rust浅尝
作者:taikulawo创建时间:2020-11-01
#编程语言#Rust
Rust 基本语法学习 为什么会有此文 目标是给 Deno 项目贡献代码,结果发现我还不会 Rust ......,所以要先啃 Rust 我发现 rust,ruby 和掌握的 C 系风格语言很不同。 我从 C# 转 Java 时根本没花时间『特地』学习语法,因为他们两个太像了,直接找了一份开源代码对......
数据表的设计
作者:taikulawo创建时间:2020-10-21
#基础#数据库
比如我们有个表(UserLiked)记录用户喜欢的 workspace 内容,且一个用户可以喜欢多个 workspace 前端的 UI 展现是用户点击 like 界面显示出用户全部喜欢的 workspace 现在有下面两种表结构,你觉着哪种不错? 注意,MYSQL并不支持Array类型,这里只是比较......
Typescript动态类型推断
作者:taikulawo创建时间:2020-10-12
#前端
实现一个功能,根据第一个字段输入的值来动态更改其余字段的类型 比如如下代码 `ts interface InputProps { label: string; } interface SelectProps { name: string; } export interface Inp......
Redux为什么需要中间件来处理异步数据流?
作者:taikulawo创建时间:2020-10-11
#前端
我们明明可以在async之后直接调用dispatch,为什么又要多此一举引入中间件呢? 为什么需要中间件来处理Redux异步数据流? 如果异步之后直接Dispatch `javascript // action creator function loadData(dispatch, userId) ......
React Hook使用小记录
作者:taikulawo创建时间:2020-10-11
#前端
UseMemo 的使用 FP 组件每次更新渲染都会被调用,我们希望更新时保存上次渲染的状态 比如如下组件 onChange触发之后组件更新,结果输入的值又没了 `jsx const [formData, setFormData] = useState(""); const [formSchema, ......
Actor Model 编程模型浅谈
作者:taikulawo创建时间:2020-09-15
#转载
本文转载自 http://jiangew.me/actor-model/ Actor 模型背景 Actor 模型特点 Akka vs Netty Actor Model What: Actor Model How: Actor Model Who: Actor Model ......
Redux-thunk代码分析
作者:taikulawo创建时间:2020-08-25
#前端
下面是redux的applyMiddleware代码 ` export default function applyMiddleware( ...middlewares: Middleware[] ): StoreEnhancer { return (createStore: StoreEn......
我眼中的Redux
作者:taikulawo创建时间:2020-08-24
#前端
现代大型React应用必须要用一个中央数据存储便于不同组件之间共享数据 奈何本人水平太菜,接触Redux时扑面而来一堆概念,明白特地花了一张图搞明白它~~ 今后有机会一定持续更新🤣 图中部分代码来自Redux官网 https://redux.js.org/basics/actions image
读Go泛型提案有感
作者:taikulawo创建时间:2020-06-25
#Go#基础
原本我以为Go添加泛型就加个type注释就可以,刚读了一遍Go generic proposal,发现要考虑的很多 提案里用C++类比,很久没写,不怎么熟悉,我用Java举例子 如下Go代码 ` // This function is INVALID. func Stringify(type T)(......
复习大学算法课
作者:taikulawo创建时间:2020-04-26
#算法与数据结构
挺多东西时间长了不接触都忘记了 10÷6=1...4 10是被除数,6是除数,1是商,4是余数 4 == 10 % 6 两数相除,除数变被除数,余数变除数 设余数为x ` n ----> x m % n = ......
一个简单的React模板以及一些React运作流程的简短分析
作者:taikulawo创建时间:2020-04-25
我知道你看不懂的 😂 See the Pen Template of React by csstry (@tryfrontend) on CodePen. <script async
microsoft pinyin horizontal or vertical switcher bug fix
作者:taikulawo创建时间:2020-04-23
#杂七杂八
如果你使用Windows 2004H版本的pinyin 输入法,那么有一定概率 horizontal/vertical 失效 如果下图 vertical 模式,你不管点击多少次,永远不能切换成 horizontal 模式 image 在网上英文中文,windows feedback都查了个遍,反馈B......
视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等
作者:taikulawo创建时间:2020-04-11
#转载
转载自 > > https://www.4k123.com/thread-8194-1-1.html 1、封装格式(MP4/MKV…) vs 媒体格式(H.264/FLAC/AAC…) MP4+MKV是你下载的视频文件最常见的种类。这些文件其实类似一个包裹,它的后缀则是包裹的包装方式。这些包裹里面......
英语思维-不断更新
作者:taikulawo创建时间:2020-04-05
#杂七杂八
关于英语思维 我理解英文句子的时候总是有点不对劲,但不知道具体是哪里 翻译英文句子的时候总是对照着中文翻译,但这样的英文读起来就是中国式英语。 英语中介词短语和从句应用非常广泛,往往一个句子首先出现的是主谓宾,然后通过whoi,where等从句进一步解释 我需要熟练上述英语的表达方式才行 举个例子 ......
Nginx如何处理请求?--翻译
作者:taikulawo创建时间:2020-03-13
#翻译
本文翻译自: > > http://nginx.org/en/docs/http/requestprocessing.html#simplephpsiteconfiguratio 基于域名的虚拟服务器 nginx首先确定使用哪个server来处理请求。让我们看下面简单的配置,这三个server都监听......
Nginx配置Oneindex
作者:taikulawo创建时间:2020-03-12
每一个 server 都是一个虚拟主机,通过 http 的 host 字段区分不同的目录 这个 host 字段对应着nginx的server_name oneindex需要 php-fpm 来处理请求,php-fpm 默认使用unix socket,需要在 /etc/php/7.0/fpm/pool......