首页
编程日记
ChatGpt专题
LINUX学习
Java学习
前端教程
单片机
单片机
学生管理系统
软件定时器
极限编程
机器视觉
el
时间复杂度
shell
ioc
完全背包
交友
C++语法,动态绑定
html期末大作业
金融学
工业互联网
API接口开发系列
湖南大学
语音信号处理
应用现代化
EmguCV
libpq
2024/4/11 16:48:28
【0211】tcpdump抓包分析pg_hba.conf以password作为认证证方式下frontend与Backend之间身份验证过程(13 - 1)
文章目录 1. 回顾2. pg_hba.conf为password,frontend与Backend如何进行验证2.1 身份认证过程2.1.1 向 frontend 发起AUTH_REQ_PASSWORD请求2.1.1.1 对应tcpdump抓包图分组信息2.1.2 等待frontend发送密码响应报文2.1.2.1 密码长度限制2.1.3 从 pg_authid 获取role信息2.1.4 fr…
阅读更多...
【0139】【libpq】postmaster收到startup packet启动数据包,并向libpq发送一个ACK(9)
文章目录 1. 概述2. libpq接收并处理ACK2.1 若因signal而导致poll()/select()失败,则会一直重试1. 概述 在【0137】【libpq】向postmaster发送 startup packet 数据包(7)和【0138】【libpq】发送任何在outBuffer中等待的数据(8)中,我们详细讲解了libpq是如何构建、填充s…
阅读更多...
【0208】Backend向客户端发送Client authentication的底层实现(10 - 3)
文章目录 1. 完整消息发送到客户端1.1 Backend并非直接调用send()发送消息1.2 拼接消息类型(msgtype)前缀1.2.1 从tcpdump抓包文件开始分析【0206】Backend 向客户端发送身份认证请求报文(Client authentication) (10 - 1) 【0207】Backend向客户端发送Client authentica…
阅读更多...
【0155】multiplex SIGALRM interrupts应用场景一:阻止恶意客户端连接攻击
文章目录 1. 概述2. 判断“恶意客户端”的依据2.1 以下两情形,均结束postgres进程3. timeout reason如何完成阻止恶意客户端3.1 三部曲1. 概述 在【0152】深入分析multiplex SIGALRM interrupts(1) 中讲解了PG引入Multiplex SIGALRM Interrupts的目的。本文我们就对timeout…
阅读更多...
【0213】pg_hba.conf以password作为认证证方式下,frontend如何处理来自Backend的请求认证报文
文章目录 1. 回顾2. 处理来自Backend的AUTH_REQ_PASSWORD2.1 frontend从PGconn获取密码2.2 字符串密码缓冲区前填充 message type相关阅读: ★【0209】frontend如何接收来自Backend进程的认证请求报文(authentication request packet)(11) ★【0210】frontend接收到Backen…
阅读更多...
Postgresql源码(117)libpq的两套实现(socket/shm_mq)
libpq的通信方式 libpq提供了两套通信方式 socketshm_mq 分别实现在下面两个文件中 pqcomm.cpqmq.c 什么时候用socket通信? 除了下述并行场景,其他场景全部使用socket通信。 static const PQcommMethods PqCommSocketMethods {.comm_reset sock…
阅读更多...