追踪Linux TCP/IP代码运行--基于2.6内核(……
查看书籍详细信息:
追踪Linux TCP/IP代码运行--基于2.6内核(……
内容简介
本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。
本书可作为3G网络开发人员、嵌入式通信产品开发人员、网络应用开发人员、网络管理人员及网络爱好者、从事网络方向的本科生、研究生的参考书。
本书可作为3G网络开发人员、嵌入式通信产品开发人员、网络应用开发人员、网络管理人员及网络爱好者、从事网络方向的本科生、研究生的参考书。
作者简介
秦健,嵌入式研发工程师。精通Linux内核,多年从事嵌入式软硬件开发,使用Linux平台设计电子产品。已经三十四岁的他凭借一颗热爱技术、永不放弃的心,十年如一地坚持技术研发的人生道路,推翻了“三十岁是技术员坟墓”的谬论,为年轻工程师树立了榜样。
目录
第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 服务器与客户端的共同关闭
索引
参考文献
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 服务器与客户端的共同关闭
索引
参考文献