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…