追踪 Linux.TCP/IP 代码运行:基于 2.6 内核 PDF 文档
本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括 socket 应用程序、TCP/IP 协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了 RTL8169 和嵌入式 CS8900、DM9000 网卡设备的核心过程。
目录
第 1 章 本书的计划
1.1 基本路线和要求
1.2 TCP/IP 协议层的划分与基本知识
1.3 函数到系统调用的过程
1.4 网络文件系统
第 2 章 socket 的创建
2.1 本章几个重要数据结构
2.2 分配并初始化 socket 结构
2.3 使用协议族的函数表初始化 socket
2.4 分配并初始化 sock 结构
2.5 TCP 协议对 sock 结构初始化
2.6 socket 与文件系统的关联
第 3 章 socket 地址设置
3.1 地址设置接口
3.2 地址结构定义
3.3 地址类型
3.4 设置地址和端口
3.5 网络空间总管 init_net
第 4 章 路由
4.1 路由函数表结构及关系图
4.2 路由函数表的初始化
4.3 通过路由函数表查找路由信息
4.4 路由的设置及相关结构的初如化
4.5 基于输出方向的路由表查找与创建
4.6 基于输入方向的路由表查找与创建
第 5 章 通知链
5.1 设备通知链节点的挂入
5.2 地址通知链节点的挂入
5.3 通知链的调用和执行
第 6 章 netlink 概述
6.1 netlink 的创建
6.2 注册路由的 netlink
6.3 通过 netlink 通信
第 7 章 监听连接请求
7.1 内核的监听函数
7.2 内核的监听队列
第 8 章 接收连接请求
8.1 接收连接函数
8.2 异步接收方式
8.3 获取连接请求
第 9 章 准备连接请求
9.1 内核的连接函数
9.2 分配数据包结构和数据块空间
9.3 构建、发送 TCP 数据包
9.4 进化成 IP 数据包
9.5 进化成以太网数据包
9.6 发送以太网数据包
第 10 章 邻居子系统
10.1 邻居子系统的初始化
10.2 查找邻居结构
10.3 邻居子系统的发送事件
10.4 邻居子系统的接收处理
第 11 章 流量控制
11.1 排队规则的初始化
11.2 排队规则的入队和发送
第 12 章 建立连接的过程
12.1 驱动程序接收并建立数据包
12.2 查找数据包类型且调用其处理函数
12.3 接收或转发 IP 数据包
12.4 TCP 数据包的处理
12.5 3 次握手过程
第 13 章 Internet 控制信息的传输
13.1 发送 ICMP 信息
13.2 接收 ICMP 信息
第 14 章数据包的分段与重组
14.1 数据包的分段发送
14.2 数据包的分段接收和重组
14.3 分段数据包的接收队列
14.4 查找与创建分段队列
14.5 释放和销毁分段队列
第 15 章 发送和接收数据包
15.1 内核的发送、接收函数
15.2 客户端发送数据包
15.3 服务器接收数据包
第 16 章 socket 的关闭
16.1 内核的关闭函数
16.2 服务器与客户端的共同关闭
索引
参考文献
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/08/H51CvnKdApnX5WPe.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论