本科毕业论文 Linux下TCP协议栈源代码分析和研究 目 录 摘要 II Abstract II 前言 1 1 linux协议栈概要 2 2 缓存sk_buff简介 3 2.1 sk_buff的定义 3 2.2 与sk_buff相关的函数 5 2.3 sk_buff_head定义及相关操作 6 3 TCP协议相关数据结构的介绍 8 3.1 socket{}结构 8 3.2 sock{}结构 9 3.3 tcp_opt{}结构 10 4 TCP连接的建立和关闭 12 4.1 TCP连接的建立 12 4.2 TCP连接的关闭 14 5 TCP数据的发送与接收 16 5.1 数据的发送 16 5.2 数据的接收 19 6 TCP的流量控制与拥塞控制 20 6.1 TCP的流量控制 20 6.1.1 初始化接收窗口 20 6.1.2 通告窗口的计算 20 6.1.3 发送窗口的更新 21 6.2 TCP的拥塞控制 21 结论 28 参考文献 28 致谢 29 附录 30 Linux下TCP协议栈源代码分析和研究 摘 要 Linux的网络协议栈是内核的一部分,它的实现是基于TCP/IP协议栈的,共分五层,分别是:应用层、BSD Socket层、INET Socket层、网络层和数据链接/硬件层。这是继承了unix的网络系统,现在linux的网络系统不断注入了新的理论。 我要研究的是linux下网络协议栈一个通信协议——TCP协议栈。TCP协议是面向对象的协议,本论文主要从缓存sk_buff,TCP相关数据结构,TCP连接的建立与关闭,TCP数据的发送与接收,TCP的流量控制与拥塞控制这几方面阐述我对TCP协议栈的理解,主要研究了TCP在内核中如何实现,以及一些算法的实现。
1