《追踪LINUX TCP/IP代码运行》(保存本书的目录啦)

http://blog.csdn.net/myth_liu/article/details/5682173

 

点击查看北航出版社《追踪LINUX TCP/IP代码运行》情况介绍




     转眼一年过去了,经过艰难而漫长的审稿、校稿之后,大家期待多时的《追踪LINUX TCP/IP代码运行》终于出版了,在这里我向热爱、追求技术的朋友们表示感谢,没有大家的鼓励和支持就不会有此书的顺利完成。

     回首我在该书的撰写过程中,历经了严冬酷暑的考验,牺牲了家人的欢聚时光,挥汗如雨、柄烛夜战,付出了许多的汗水和亲情而我毫无懈倦,只因在心中始终有一个目标,就是为了能将个人收获及时与大家同分享共进步。在前言中致谢了支持与帮助过本书的朋友,但在这里我还要感谢我的妻子与孩子,是妻子的关爱与帮助使我有了充足的信心,是孩子主动放弃了游玩娱乐让我有了更多的时间。

     之所以在这里强调”授人以鱼不如授人以渔“,是因为我经过了读书的艰难过程,深知阅读字典式书本的痛苦,面对一堆杂乱无章的知识,面对一堆铺天盖地的理论,经常是消化不良,胃口失调,甚至动摇过学习的信心,产生过是否适合做技术的疑虑。所以,在面对琳琅满目的各种书籍,我们最应该关心的是书籍的主题思想,如果是授人以渔,传递的不光是技术还有思想,那就是好的书,容易消化的书。选书就象挑选老师,找准适合自己的才是最好的。

     我在该书中凭借应用程序为线索,系统描述了数据包在协议栈的分段、重组、发送、接收过程及路由的初始化和设置过程,一直渗透到驱动程序。无论从应用上,还是内核中,始终传递着一个主题思想“用中学习,用中理解“,因为,只有我们将知识贯穿到实际应用中去学习和理解,才是最有效最高效的学习方法,相信朋友们都有深刻的体会。

     关于书籍的内容就不再老调重弹了,在北航出版社的网站上有更加详细的说明,希望朋友们喜欢此书,欢迎到http://qinjianao786.cublog.cn来做客参与技术讨论,也可以发电子邮件到:[email protected]进一步交流。
   

目录:


第1章 本书的计划1

1.1基本路线和要求1

技术要点:分析路线服务器程序学习要求

1.2 TCP/IP协议层的划分与基本知识4

技术要点:协议层知识服务器与客户端的通信路线

1.3函数到系统调用的过程6

技术要点:库函数的真实定义系统调用的总入口及传值

1.4网络文件系统11

技术要点:网络文件系统的特点initcall机制网络文件系统的安装

第2章 socket的创建15

2.1本章几个重要数据结构15

技术要点:socket结构、sock结构、sk_buff结构、tcp_sock结构的定义

2.2分配并初始化socket结构23

技术要点:分配socket结构空间分配文件节点

2.3使用协议族的函数表初始化socket27

技术要点:登记函数表定义、注册及初始化协议族结构

2.4分配并初始化sock结构38

技术要点:分配结构空间初始化sock结构及数据包队列头

2.5TCP协议对sock结构初始化43

技术要点:TCP协议的初始化函数tcp_sock等结构的关联

2.6socket与文件系统的关联46

技术要点:分配文件指针和文件号指定文件操作表

第3章 socket地址设置51

3.1地址设置接口51

技术要点:地址设置过程查找socket和文件指针复制数据到内核

3.2地址结构定义54

技术要点:结构的定义及赋值协议族的设置函数网络空间结构

3.3地址类型58

技术要点:地址类型的概念 查验地址类型获取路由函数表

3.4设置地址和端口62

技术要点:地址与端口的队列结构地址与端口的查找与建立

3.5网络空间总管init_net73

技术要点:init_net结构的初始化 队列头的初始化

第4章 路由78

4.1路由函数表结构及关系图78

技术要点:fib_table结构、fn_zone结构、fib_node结构及fib_info结构的关系

4.2路由函数表的初始化78

技术要点:路由表队列、路由函数表队列的初始化路由规则结构、路由函数表结构、路由区结构的定义子网掩码的作用

4.3通过路由函数表查找路由信息100

技术要点:路由区及路由节点的匹配和查找路由信息、路由跳转结构的查找

4.4路由的设置及相关结构的初如化109

技术要点:设置路由的三条路线路由配置结构的定义路由区的建立路由信息的创建和调整队列节点的链入与摘除路由跳转结构的初始化路由函数表的查找
路由别名结构的建立路由表的冲刷与释放

4.5基于输出方向的路由表查找与创建156

技术要点:路由键值结构的定义路由表结构的定义路由表队列的轮询路由表的创建与查找

4.6基于输入方向的路由表查找与创建189

技术要点:为数据包查找路由表创建转发的路由表

第5章 通知链200

5.1设备通知链节点的挂入200

技术要点:通知链节点结构的定义设备配置结构的定义设备通知链的建立

5.2地址通知链节点的挂入206

技术要点:地址通知链的定义和链入

5.3通知链的调用和执行207

技术要点:网络设备结构的登记注册通知节点函数的调用

第6章 netlink概述212

6.1netlink的创建212

技术要点:netlink的sock结构定义及初始化

6.2注册路由的netlink217

技术要点:路由的netlink结构定义及注册

6.3通过netlink通信219

技术要点:netlink的信息结构、消息头结构、路由消息结构的定义及初始化netlink数据包的建立及发送

第7章 监听连接请求234

7.1内核的监听函数234

技术要点:协议族监听函数的调用连接数的控制监听结构的建立及定义连接请求结构及队列

7.2内核的监听队列241

技术要点:监听队列的链入过程监听队列的睡眠等待和唤醒

第8章 接收连接请求245

8.1接收连接函数245

技术要点:协议族接收函数的调用定时等待连接请求

8.2异步接收方式253

技术要点:异步接收实例异步唤醒路线查询客户端sock结构和连接请求结构

8.3获取连接请求257

技术要点:客户端socket、sock结构的对接获取客户端的地址INET协议族结构的定义

第9章 准备连接请求262

9.1内核的连接函数263

技术要点:客户端程序及服务器程序的通信效果协议族连接函数的调用源路由的分类和查找TCP协议的socket结构定义端口的查找与复用SYN数据包的建立路由项结构的定义MTU、MSS的作用及设置滑动窗口的初始化

9.2分配数据包结构和数据块空间286

技术要点:创建并初始化数据包共享结构的定义及数据块的分类TCP的控制结构发送队列的链入和计数数据包的结构示意图

9.3构建、发送TCP数据包299

技术要点:TCP头部的定义TCP层的发送过程克隆数据包的建立重发数据包的依据拥塞报告的建立

9.4进化成IP数据包312

技术要点:IP层的发送过程IP选项的定义IP头部的定义及初始化ID编号的生成和设置链路层头部缓存结构的定义邻居子系统的发送函数

9.5进化成以太网数据包330

技术要点:链路层头部及其缓存结构的初始化以太网头部结构的定义及初始化

9.6发送以太网数据包335

技术要点:分段发送的检测网卡驱动程序的发送过程

第10章 邻居子系统345

10.1邻居子系统的初始化345

技术要点:ARP的邻居表结构、邻居结构的定义邻居表的链入查找、创建ARP的邻居函数表

10.2查找邻居结构355

技术要点:邻居结构的查找过程

10.3邻居子系统的发送事件356

技术要点:邻居结构的状态类型及检测邻居结构的定时器、定时函数ARP包的建立及初始化ARP头部的定义ARP包的发送

10.4邻居子系统的接收处理366
技术要点:ARP数据包类型结构ARP数据包的接收和处理解包获取客户端地址
更新邻居结构

第11章 流量控制374

11.1排队规则的初始化374

技术要点:排队规则的定义网卡设备结构的登记与注册排队规则的创建及初始化
排队规则函数表的定义

11.2排队规则的入队和发送382

技术要点:排队规则的入队操作排队规则对数据包的流量控制和发送过程

第12章 建立连接的过程388

12.1驱动程序接收并建立数据包388

技术要点:网卡驱动程序的接收过程构建数据包软中断数据结构的运用软中断函数的接收过程

12.2查找数据包类型且调用其处理函数400

技术要点:数据包类型结构的定义IP数据包类型及数据包类型队列IP层的接收过程

12.3接收或转发IP数据包408

技术要点:IP选项的检查源路由的执行路由表的转发和接收过程

12.4TCP数据包的处理415

技术要点:传输层函数表结构的定义TCP协议的函数表注册TCP层的接收过程
查找与唤醒服务器进程

12.53次握手过程427

技术要点:查找、创建客户端sock结构建立连接请求结构创建并发送ACK包连接请求的转接

第13章 Internet控制信息的传输446

13.1发送ICMP信息446

技术要点:ICMP的作用ICMP的发送函数 ICMP信息结构、头部结构、缓存结构的定义 ICMP控制结构数组 ICMP发送速率的设置

13.2接收ICMP信息458

技术要点:ICMP协议的函数表 ICMP协议的接收过程

第14章 数据包的分段与重组461

14.1数据包的分段发送461

技术要点:数据包的分段示意图 IP层的分段函数 快发送、慢发送过程 分段数据的复制

14.2数据包的分段接收和重组472

技术要点:IP层的重组函数 整理、合并分段数据包过程

14.3分段数据包的接收队列482

技术要点:IP分段队列结构INET协议族的分段队列头结构 网络空间、INET协议族的分段管理结构

14.4查找与创建分段队列485

技术要点:IPv4分段信息结构查找、创建INET分段队列头初始化IP分段队列结构

14.5释放和销毁分段队列489

技术要点:清除分段队列释放分段数据包和队列头

第15章 发送和接收数据包494

15.1内核的发送、接收函数494

技术要点:3种发送、接收的系统调用过程网络文件系统的发送、接收函数

15.2客户端发送数据包501

技术要点:消息结构、缓冲区结构的定义与初始化 构建发送数据包 TCP层的发送过程TCP层的分段发送阻塞的检测

15.3服务器接收数据包529

技术要点:TCP层的接收过程预处理队列的链入和处理预处理进程的接收过程
复制数据到程序的缓冲区 处理后备队列的数据包

第16章 socket的关闭551

16.1内核的关闭函数551

技术要点:网络文件系统的关闭函数删除、释放异步结构 释放接收队列的数据包 释放、销毁sock结构、连接请求结构

16.2服务器与客户端的共同关闭563

技术要点:服务器与客户端FIN、ACK、RST包的交互过程状态改变与强制关闭

你可能感兴趣的:(《追踪LINUX TCP/IP代码运行》(保存本书的目录啦))