Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 3.05 KB

README_EN.md

File metadata and controls

65 lines (47 loc) · 3.05 KB

Linux Kernel 4.4.0 Source Code Analysis - TCP Implementation

Build Status

Creative Commons License
This work is based on Attribution-ShareAlike 4.0 International License.

Chinese Version

Overview

TCP is one of the most important contents in current networking protocol stack. Based on personal interests, we hope to learn more knowledge of the implementation of TCP. However, current analysis blogs or articles on the Internet are fragmented and outdated, and it is hard to form a completed system.

Therefore, we are going to analyze part of source codes of TCP implementation inside Linux kernel 4.4.0, and we genuinely hope that this work could help the people that have interest in it.

Directory Structure

tcp.pdf					Each commit will generate the newest analysis document
tcp.tex					The main file of TCP codes analysis 
chapters/				Content of each chapter
    prepare.tex				Basic knowledge (such as RFC)
    network_data_structure.tex		Core data structure of network sub-system
    tcp_output.tex			TCP output
    tcp_input.tex			TCP input
    client_connect.tex			Active Connection (Client)
    server_connect.tex			Passive Connection (Server)
    congestion_control.tex		TCP Congestion Control
    congestion_control_engine.tex	TCPCongestion Control Engine(include module CUBIC)
    active_close.tex			Active Close
    passive_close.tex			Passive Close
    non-core-related-code.tex		Non-core source code analysis
    appendix.tex			Appendix(Knowledge of GCC, OS, and Architecture)
images/					Images required by this project
fonts/					Adobe fonts
rfc*.pdf				Documetns relevant to RFC
TODO					TODO List
Makefile				Compile script

Dependencies

This document is written in LaTeX, here are the required packages:

  • Adobe fonts

This document uses CTEX environment and applies Adobe's fonts for Chinese characters. To facilitate compilation, those fonts are under fonts folder; please install them by yourself.

  • TeX Live 2015 version or above

A compilation is passed on Tex Live 2015 environment with Ubuntu16.04 distribution, please ensure xelatex is inside searching path.

  • pygments

The highlighted part is using minted macro package; this package depends on pygments package to highlight source code. Please install pygments before compilation.

How to generate this document

This project provides Makefile to generate the document.

make clean && make

Get Involved

With our analysis goes into deeper, we found it is hard to finish all of the work with our contribution. We hope more and more people could join us to complete and polish this work together and hope this project could help more people as well.