# Analysis_TCP_in_Linux **Repository Path**: mark4z/Analysis_TCP_in_Linux ## Basic Information - **Project Name**: Analysis_TCP_in_Linux - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-27 - **Last Updated**: 2025-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 4.4.0内核源码分析——TCP实现 # ![Build Status](https://github.com/fzyz999/Analysis_TCP_in_Linux/actions/workflows/test-build.yaml/badge.svg)

知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

[English Version](README_EN.md) ## Overview ## TCP协议是目前网络协议栈中最重要的内容之一。出于个人兴趣,我们希望能够了解 关于TCP实现的相关知识。然而,目前网络上已存在的相关分析文章较为零散,难以 形成完整的体系,且多数文章所分析的内核版本较老。 因此,我们希望通过该项目对Linux内核的TCP实现进行相对系统的分析,并且希望我们 所做的工作能够帮助到那些真正需要的人。 ## 目录结构 ## ```text tcp.pdf 每次commit生成的最新版本的分析文档。 tcp.tex TCP分析文档主文件 chapters/ 每一章节的内容 prepare.tex 准备知识(RFC等) network_data_structure.tex 网络子系统相关核心数据结构 tcp_output.tex TCP输出 tcp_input.tex TCP接收 client_connect.tex 主动连接(Client) server_connect.tex 被动连接(Server) congestion_control.tex TCP拥塞控制实现 congestion_control_engine.tex TCP拥塞控制引擎(及CUBIC模块分析) active_close.tex 主动关闭 passive_close.tex 被动关闭 non-core-related-code.tex 非核心代码分析 appendix.tex 附录(GCC、操作系统、体系结构等相关知识) images/ 文档图片目录 fonts/ Adobe字体 rfc*.pdf 涉及到的RFC文档 TODO TODO List Makefile 构建脚本 ``` ## 依赖 ## 本文采用LaTeX编写,生成文档需要相关的编译环境: + Adobe字体 本文采用了CTEX环境,其中,中文字体方面采用了Adobe字体。为了便于大家编译, 字体已经放在了fonts目录下,请自行安装。 + TeX Live 2015或以上版本 本文在Ubuntu16.04发行版所配套的TeX Live 2015上编译通过,可以正确生成PDF。 **需要确保xelatex在搜索路径(path)中** + pygments 本文的代码高亮采用了minted宏包,该宏包依赖pygments进行代码高亮,因此,编译 该文档依赖pygments。 ## 如何生成文档 ## 本项目提供了Makefile用于生成文档 ```shell make clean && make ``` ## Get Involoved ## 随着对于Linux的TCP实现分析的深入,我们渐渐发现想要凭借我们微薄的力量完成这一 工作并不容易。我们希望有更多的人能够和我们一道,逐步完善对Linux内核TCP的分析。 让本项目所产生的分析文档能够惠及更多的人。