Known unknowns

eBPF学习实践系列(五) -- 分析tcplife.bpf.c程序

跟踪分析bcc项目ibbpf-tools中的 tcplife.bpf.c 程序 1. 背景 前面的eBPF学习实践系列主要是跟着别人的文章学习,积累了比较理论的知识。 TCP半连接全连接(三) – eBPF跟踪全连接队列溢出(上) 这篇中,自己要写eBPF程序了,带着实践的目的去参考已有工具代码,发现视角完全变了。 之前的理论知识很多都串起来了,再次体会到如这篇文章:举三反一–从理论...

eBPF学习实践系列(二) -- bcc tools网络工具集

bcc tools工具集中网络部分说明和使用。 1. 背景 上篇(eBPF学习实践系列(一) – 初识eBPF)中提到性能分析大师Brendan Gregg等编写了诸多的 BCC 或 BPFTrace 的工具集可以拿来直接使用,可以满足很多我们日常问题分析和排查,本篇先学习下网络相关的几个工具。 参考 说明:本博客作为个人学习实践笔记,可供参考但非系统教程,可能存在错误或遗漏,欢迎...

eBPF学习实践系列(一) -- 初识eBPF

eBPF学习实践,初步整理学习。 1. 背景 在“TCP半连接全连接(一) – 全连接队列相关过程”这篇文章中,进行了全连接队列溢出的实验,准备后续用eBPF跟踪过程。 eBPF名声在外,之前没用过时简单翻完了《Linux内核观测技术BPF》这本动物书,正好趁这个机会掌握熟悉这个技能,祛魅。 在基本学习eBPF之后尝试用libbpf-bootstrap写跟踪程序,发现还差些火候。先把...

TCP半连接全连接(二) -- 半连接队列代码逻辑

半连接队列相关过程分析及实验,并用工具跟踪。本文先分析半连接相关代码逻辑。 1. 背景 在“TCP半连接全连接(一) – 全连接队列相关过程”这篇文章中,进行了全连接队列溢出的实验,并且遗留了几个问题。 本博客跟踪分析半连接队列相关过程,并探究上述文章中的遗留问题。 半连接队列溢出情况分析,服务端接收具体处理逻辑 内核drop包的时机,以及跟抓包的关系。哪些情况可能会抓不到...

分析某环境中ss结果中Send-Q为0的原因

某个环境中ss结果里的Send-Q为0,跟踪代码分析原因。 1. 背景 上一篇文章(TCP半连接全连接(一) – 全连接队列相关过程)中提到ss结果里的Send-Q是全连接队列的长度,也提到ss和netstat实现有差异。 在某环境中查看信息时,ss -lt发现所有监听端口的Send-Q都是0,本篇文章进行流程跟踪和原因定位。 2. 现象和问题定位 2.1. 现象 找几个环境对比...