Linux内核网络专栏更新完成

admin 2026-09-16 04:40:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档宣布大型专栏《Linux网络编程从应用层到内核实现源码详解》已全部更新完成,共涵盖39篇技术文章,内容从socket创建、sk_buff内存管理、TCP协议实现到epoll事件驱动等内核网络核心主题,为开发者提供了从应用层到底层内核的完整源码级解析,具有较高技术参考价值。 综合评分: 60 文章分类: 其他


Linux内核网络 专栏更新完成

原创

张小方 张小方

CppGuide

2026年9月15日 11:36 上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

大型专栏《Linux网络编程从应用层到内核实现源码详解》已经全部更新完了。

大型专栏:Linux网络编程从应用层到内核实现源码详解

第 02 篇 · 工具箱:读源码的工具,和看内核的工具

第 03 篇 · 三层派发总纲:socket 函数如何找到它的内核实现

第 04 篇 · 读内核网络代码的最小 C 知识

第 05 篇 · 谁在和你抢同一个 socket:lock_sock() 到底锁了什么

第 06 篇 · sk_buff(上):一块内存如何同时是帧、是包、是段

第 07 篇 · sk_buff(下):非线性区、克隆与引用计数

第 08 篇 · skb 的分配与回收:一个包的内存从哪来,又还到哪去

第 09 篇 · struct socket  与 struct sock:为什么一个连接要两个结构体

第 10 篇 · sk 的队列与内存记账:SO_SNDBUF 到底限制了什么

第 11 篇 · net_device 与多队列模型:网卡在内核里长什么样

第 12 篇 · network namespace:struct net 为什么无处不在

第 13 篇 ·  socket() :一个 fd 的诞生

第 14 篇 · bind():端口哈希表的秘密

第 15 篇 · listen():两个队列的真相

第 16 篇 · connect():三次握手的发起端

第 17 篇 · accept():从全连接队列取一个 sk

第 18 篇 · 一次连接的完整生命周期:从第一个 SYN 到最后一个 FIN

第 19 篇 ·  send 家族:msghdr 与 iov_iter

第 20 篇 · recv 家族:从接收队列拷贝出来

第 21 篇 · 阻塞与非阻塞:同一段代码,只差一个 timeo

第 22 篇 · setsockopt 的一生:level 派发与 sockptr_t

第 23 篇 · 选项 vs sysctl vs cgroup:谁说了算

第 24 篇 · cmsg:被忽略的另一半接口

第 25 篇 · select/poll/epoll:唤醒链是怎么接起来的

第 26 篇 · epoll 内部:一棵红黑树、一条就绪链、一次 ep_poll()

第 27 篇 · close() 与 shutdown():语义差异的内核根源

第 28 篇 · sendfile/splice/mmap:绕开用户态缓冲区

第 29 篇 · 同步与异步:SIGIO 那一代,和 io_uring 那一代

第 30 篇 · tcp_sendmsg_locked:用户数据如何变成 skb

第 31 篇 · tcp_push 与 Nagle:数据什么时候真的发出去

第 32 篇 · tcp_transmit_skb:TCP 头是怎么拼出来的

第 33 篇 · 八个标志位,各自由谁置上

第 34 篇 · 滑动窗口:四个序号,两个窗口

第 35 篇 · TSO / GSO:一个 skb 怎么变成多个报文

第 36 篇 · ip_queue_xmit:路由查找与 IP 头组装

第 37 篇 · 拥塞控制框架:tcp_congestion_ops 的回调表

第 38 篇 · 重传定时器与 RTO:超时时间怎么算出来,超时之后做什么

第 39 篇 · 快速重传与尾部丢包探测:不等 RTO 就判出丢包的两条路

第 40 篇 · RACK:按发送时间判定丢包

第 41 篇 · undo:判错之后怎么撤销这次拥塞窗口下调

第 42 篇 · 邻居子系统、ARP 与 __dev_queue_xmit

第 43 篇 · 从硬中断到软中断:napi_schedule

第 44 篇 · net_rx_action:软中断主循环与 budget

第 45 篇 · threaded NAPI、napi_config 与 busy_poll

第 46 篇 · 驱动 poll 内部:从 DMA 描述符环到 skb

第 47 篇 · GRO:把小报文粘成大报文

第 48 篇 · __netif_receive_skb_core:packet_type 分发与 RPS/RFS

第 49 篇 · ip_rcv到 ip_local_deliver:IP 层收包的三道关

第 50 篇 ·tcp_v4_do_rcv:socket 查找、backlog 与 prequeue 的消亡

第 51 篇 · tcp_rcv_established:快速路径为什么快

第 52 篇 · tcp_ack 与 SACK 处理:收到一个 ACK,发送方更新哪些状态

第 53 篇 · 乱序队列:一棵红黑树,进树、出树与内存不够时先丢谁

第 54 篇 · 延迟 ACK、QUICKACK 与 ACK 压缩

第 55 篇 · 状态机:握手、挥手、TIME_WAIT 与保活

第 56 篇 · CUBIC 与 BBR 源码对读

第 57 篇 · 接收窗口与内存自动调优

第 58 篇 · 路由子系统与 dst_entry 的生命周期

第 59 篇 · FIB trie、策略路由与 nexthop 对象

第 60 篇 · netfilter:hook 点如何嵌进收发路径

第 61 篇 · TC 与 qdisc:pfifo_fast、fq、fq_codel

第 62 篇 · 桥接与 VLAN:帧进桥之后怎么查表转发,VLAN 标签在哪一步加减

第 63 篇 · 隧道与封装:一个帧被 VXLAN 套上 50 字节,再原样拆开的全程

第 64 篇 · XDP:在 skb 诞生之前拦截

第 65 篇 · eBPF 网络钩子全景

第 66 篇 · 硬件卸载:NETIF_F_*如何改变代码路径

第 67 篇 · BIG TCP:64KB 这道上限卡在哪,内核用什么办法绕过去

第 68 篇 · devmem TCP:数据直落 GPU 内存

第 69 篇 · io_uring 零拷贝收发

第 70 篇 · MPTCP 与 PSP:新协议如何嵌进旧框架

第 71 篇 · dropreason 与观测工具箱:内核怎么给出丢包原因码,你又怎么读到它

第 72 篇 · 性能排查实战:四个现场案例,以及怎么把这套方法用到你自己的内核上

专栏总结

配一张思维导图:

购买了本专栏的同学可以加微信cppxiaofang进内核源码交流群。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:CppGuide 张小方 张小方《Linux内核网络 专栏更新完成》

评论:0   参与:  0