零、【TCP/IP源码解析】开篇

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 零、【TCP/IP源码解析】开篇

缘起


  • 之前有前辈对Linux内核、TCP/IP协议栈做过注解,只是之前使用的版本比较旧了,最新的内核版本(截止2022.02.08)已经更新到5.17-rc3了,本人不才,准备效仿前辈,计划对5.15版本的内核协议栈做一注释。


代码基础


  • 以linux-5.15.17.tar.xz版本作为底版进行解读;


  • 对应内核源码可以从kernel.org上找对应tar包,或者直接从Linux内核源码,5.15.17这里下载。


  • 目前代码仅选取了上述内核tar包的net目录、net对应include目录,e100.c文件等。


github库


  • Github主页


qxhgd


  • 对应的repo库地址:


Reading-and-Comprehense-Linux-Kernel-Network-Protocol-Stack-Linux-5.15.17


该github除了更新代码注释外,也会将参考的资料(如后文涉及pdf书籍)、流程图、框图等更新到github仓库中。


操作方式


  • 对应源码的注释会更新到上述提到的github仓库中,可在代码中搜索“qxhgd”字样来获取注释信息,注释格式类似下面这种:


/*  qxhgd commented: 协议栈将要发送的skb通过该函数发给e100网卡驱动  */


  • 源码的解析以及流程图,会同步更新到本专栏中;


参考书籍


  • 《深入理解Linux网络技术内幕》


  • 《Linux内核源码剖析:TCP/IP实现》


  • 《TCP/IP详解》


后续如增加参考书籍,会陆续更新到这里。


相关工具


  • 画图:draw.io


  • 截图:FSCapture


  • 代码:SourceInsight或VSCode
相关文章
|
27天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
60 0
|
27天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
49 0
|
27天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
58 0
|
27天前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
72 0
|
7天前
|
消息中间件 缓存 安全
Future与FutureTask源码解析,接口阻塞问题及解决方案
【11月更文挑战第5天】在Java开发中,多线程编程是提高系统并发性能和资源利用率的重要手段。然而,多线程编程也带来了诸如线程安全、死锁、接口阻塞等一系列复杂问题。本文将深度剖析多线程优化技巧、Future与FutureTask的源码、接口阻塞问题及解决方案,并通过具体业务场景和Java代码示例进行实战演示。
26 3
|
7天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
24天前
|
存储
让星星⭐月亮告诉你,HashMap的put方法源码解析及其中两种会触发扩容的场景(足够详尽,有问题欢迎指正~)
`HashMap`的`put`方法通过调用`putVal`实现,主要涉及两个场景下的扩容操作:1. 初始化时,链表数组的初始容量设为16,阈值设为12;2. 当存储的元素个数超过阈值时,链表数组的容量和阈值均翻倍。`putVal`方法处理键值对的插入,包括链表和红黑树的转换,确保高效的数据存取。
50 5
|
26天前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
|
26天前
|
XML Java 数据格式
Spring底层架构源码解析(二)
Spring底层架构源码解析(二)
|
25天前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。

推荐镜像

更多