Skip to content

linux kernel-4.17 协议栈源码阅读, reading linux kernel 4.17 netstack, once one has started to experience the rich insights that can be gained from the kernel sources, it is hard to escape the fascination of Linux

Notifications You must be signed in to change notification settings

zboya/linux_kernel_netstack_reading

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux内核协议栈源码阅读

有任何理解错误的地方,还望指出

linux官网

目标

理解tcp/ip的协议栈,结合RFC和代码加深理解。

微信群

想一起阅读的小伙伴可以加我微信sheepbao-520,加入阅读群,备注阅读linux kernel

github地址

https://github.com/sheepbao/linux_kernel_netstack_reading

目前的进度

  • 2018-08-09 大概阅读了socket层的代码
  • 2018-08-17 大概阅读了二层收发包的代码
  • 2018-08-22 阅读网络设备的初始化和网络设备收发的大概流程,阅读vlan处理的注释
  • 2018-08-26 对ip_output进行注释,大概看完ip发送的流程
  • 2018-09-05 大概阅读邻居子系统
  • 2018-09-12 阅读tcp接收数据的处理
  • 2018-09-18 阅读tcp发送数据的处理(未完)
  • 2018-09-26 阅读tcp发送数据的处理(未完)
  • 2018-10-10 阅读tcp发送数据的处理(未完)
  • 2018-10-17 阅读一点route系统
  • 2018-10-24 阅读一些传输控制层的结构
  • 2018-10-31 着重看了一下tcp的拥塞控制
  • 2018-11-07 添加对发送窗口的理解
  • 2018-11-22 阅读tcp rate算法实现
  • 2018-12-15 vrf阅读
  • 2018-12-26 阅读tuntap驱动的一些源码
  • 2019-01-16 阅读vlan的处理和一些raw socket的处理
  • 2019-03-12 阅读netfilter子系统
  • 2019-04-27 阅读一些内核流控代码

时间

每周三晚9:00-10:00

linux版本

linux kernel 4.17

准备工作

  • 有一台能上网的电脑
  • 安装zoom软件,并注册
  • 装一个阅读linux源码的编译器或者ide,推荐vscode
  • 下载linux 4.17的源码

可以先阅读的资料

活动步骤

线上阅读主要用来督催进度,及解决难点,需要线下自己多看多思考

  • 线上用zoom共享屏幕,阅读linux kernel源码,一起讨论添加注释,尽量让每个人都理解
  • 提交结果到github
  • 有任何不理解的地方可以提issue,大家一起讨论

阅读的方式

整体从上层往下层读,先读socket层,然后传输层,网络层,链路层。

  1. 选好一个主题,并查询资料阅读该主题的相关背景
  2. 大概浏览阅读相关源码
  3. 仔细阅读源码实现原理
  4. 最后再整理整个流程

暂定的主题

  1. socket的实现
  2. udp的实现(先看udp,因为相对简单)
  3. tcp的实现
  4. ip层的实现
  5. 邻居子系统的实现
  6. ethernet层的实现

相似的项目

感谢以下的项目及作者,让我能够更快的理解协议栈代码
https://github.com/y123456yz/Reading-and-comprehense-linux-Kernel-network-protocol-stack

About

linux kernel-4.17 协议栈源码阅读, reading linux kernel 4.17 netstack, once one has started to experience the rich insights that can be gained from the kernel sources, it is hard to escape the fascination of Linux

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published