本科毕业论文 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