Coder Social home page Coder Social logo

run / kernel-tcp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from y123456yz/reading-and-comprehense-linux-kernel-network-protocol-stack

293.0 15.0 158.0 70.86 MB

linux内核网络协议栈源码阅读分析注释--带详尽中文分析注释以及相关流程分析调用注释,对理解分析内核协议栈源码很有帮助

License: GNU General Public License v3.0

C 99.59% C++ 0.02% Makefile 0.38% Awk 0.02%

kernel-tcp's Introduction

DDD# Reading-and-comprehense-linux-Kernel-network-protocol-stack linux内核网络协议栈阅读理解

本代码是linux内核网络协议栈源码(版本为2.6.35),主要是我读研期间在一家公司实习的时候在业余时间分析阅读的,

研究生毕业后由于工作需要,对读研期间没有阅读的剩余主要功能重新阅读了一遍。本代码对三层及其以上部分主要功能做 了详细注释,并对重要数据结构的各个成员进行了备注,同时对各个函数的调用关系都有详尽备注。主要参考资料为樊东东 老师的<linux内核源码剖析(上下册)>,再此对樊老师表示感谢,这是一本理解网络协议栈很好的书,两本合计1000多页,内 容比较多,但都很经典,对阅读内核协议栈源码有很大的帮助。

由于工作中经常需要修改协议栈源码,包括封包解包各种隧道报文, NAT功能添加,路径修改,添加自己的netfilter代

码等,由于部分内容涉及到公司保密内容,因此这些工作中新增修改的内核代码已经从本分github中移除,因此可能造成部分 函数没有定义,但不会影响各位同行阅读和理解协议栈源码。

该代码已经详细分析和注释的协议栈功能有: .二层 三层 4层 发包收包调用流程,及各层头部封包解包分析注释。 .netfilter框架代码分析注释 .sock处理过程中的各种系统调用以及内核处理过程分析注释 .SKB封包 解包 克隆复制 拆分 拉直等详细分析注释 .网络dev设备注册 注销详解。 .内核态用户态通信netlink代码分析注释 .ip分片重组分析注释 .套接口层代码分析及详细注释 .传输控制块分析注释 .TCP链接建立过程分析注释 .链接终止过程分析分析注释 .ip层输入输出分析,TCP输入输出分析 及其层次调用过程分析注释 .tc限速源码分析注释 .ppp内核模块分析注释 .相关模块功能分析注释

待分析主要模块:网桥模块,vlan模块,邻居子系统,路由表模块。

阅读工具source insight,如果中文乱码,按照source insight configure目录中说明操作

kernel-tcp's People

Contributors

y123456yz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.