魅力博客

魅力Linux|魅力空间|魅力博客|学习Linux|ubuntu日记|电脑教程|手机软件

最值得一看的linux基于2.6内核的《追踪LINUX TCP/IP代码运行》教材



非常感谢大家的关注,很多朋友为了学习方便来信要求将《TCP/IP协议内核源码分析》付印成书,现已整理完成,它将由北京航空航天大学出版社出版发行。出版书名为《追踪LINUX TCP/IP代码运行》,它由十六章组成,全书仍旧采取从应用程序到内核的分析方法,大家可以先看一下样章,样章点击此处下载

初稿电子书仍然提供下载,但是它存在一些不足,这些问题都已经在正式书稿中改进完善了,特此提醒读者以正式出版的书为准。

初稿电子书让大家引起了误解,它并不是即将出版的书稿,只是前期的草稿,而且内容不全,初稿电子书不到二百页,而整理后的书稿全书超过了五百页并且以服务阅读的角度对内容进行了分类整理,书中所列的许多函数与结构都是在网络上无法搜索到的,它们是辛苦总结而来的,由此看出本书的学习价值。

特别强调一点,本书是基于2.6版本的LINUX内核,它是从实践到理论式的讲解,这对于想掌握网络的朋友是珍贵的资料,并不象TCP详解那样铺天盖地罗列理论,也不象深入LINUX网络内幕那样毫无主线对函数解析,并且这二者都不是针对最流行的2.6内核。相信本书的出版一定会使读者很容易进入并掌握LINUX的网络世界。

下面是内容简介

本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括Socket应用程序、TCP/IP协议、路由、通知链、邻居子系统等内容,全书涵盖了协议栈的全部知识点,这对于广大的读者朋友来说是一部极其难得的技术资料,书中同时论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程,因此,无论是应用开发人员还是嵌入式开发人员、网络管理人员均可将此书做为重要的学习资料。

前言

学习过TCP/IP协议的读者可能会感觉面对长篇大论的一堆文字往往不知道从何入手,甚至很多读者在认真阅读之后也无法领会协议的作用,更无法进入内核的协议栈阅读代码,以至于无法从事网络方面的开发与维护,然而,高速发展的网络时代要求技术人员必须快速掌握和运用协议的知识,那么有没有一种有效的方法可以帮助我们实现这一目标呢?相信读者可以在本书中找到答案。

理论的学习固然是基础,但是不一定具备了理论才开始阅读代码,就象以往的英语学习方法,大家只采取背单词、记语法的方式,结果十几年之后仍然不会说英语,不会用英语,因为这种英语教学方法只停留在理论层上,现代的英语教学则打破了理论为主线的学习方法,从应用性和实用性出发,从而极大改变了学习的效果。因此,本书借鉴现代英语的学习模式,选择从实际应用出发,以应用程序为主线进入Linux内核,通过应用程序的工作过程层层解析内核的协议栈,揭示协议栈的工作路线,揭露网络的真实过程,帮助读者彻底掌握协议栈,读者在阅读完本书之后将会有一种登上泰山顶峰的兴奋之情。目前,市场针对Linux网络的讲解书籍已经很多,内容基本都是对理论的泛泛而谈,有的书籍缺少主线,有的书籍缺少与实际应用的结合,有的书籍采用的内核版本过于陈旧,这些问题加大了阅读的难度,导致很多读者使用 “压箱子底”的办法放弃了学习。与此相反,本书克服了上述全部问题,并且在描述每一个关键过程时,采取穿插图片和逐行解释的方式解决了这些难点,从而使全书象一部小说那样具备整体性和情节性。

本书针对的是2.6版本的Linux内核,对于内核的进程管理、内存管理、文件系统等内容,请读者借鉴本书推荐书籍或者直接跳过这些内容只阅读核心部分,对于难以理解的内容可以先放一放,往往在读第二遍时就会自然而解,这是因为内核的知识点互为补充的结果。由于内容繁多,不足和漏洞之处可能还会存在,请读者谅解并提出修改建议。

冯伟对本书的图片编辑提供了帮助,同时对本书的编辑提供支持的还有:

罗燕军、杨永祥、张文盛、李  华、倪  巍、刘国兵、葛德奇、朱德良、罗  兵、彭  海
白  瑜、颜诗敏、傅海荧、李柱栋、盛晓晖、修  宸、张泽荣、陈嘉顺、时安营、周  丹
江均勇、杨  硕、罗伟彬、李洪彬、杨春雷、付金平、缪  晓、钟海文、卓  深、林晓川

在此向他们的辛勤付出表示感谢。


目录


一、本书的计划 

1.1 基本路线和要求

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

1.3 函数到系统调用的过程

1.4 网络文件系统

二、Socket的创建

2.1 本章几个重要数据结构

2.2 分配并初始化Socket结构

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

2.4 分配并初始化Sock结构

2.5 TCP协议对Sock结构初始化

2.6 Socket与文件系统的关联

三、Socket的地址设置

3.1 地址设置接口

3.2 地址结构定义

3.3 地址类型

3.4 设置地址和端口

3.5 网络空间总管init_net

四、路 由 

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

4.2路由函数表的初始化

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

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

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

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

五、通知链

5.1设备通知链节点的挂入

5.2地址通知链节点的挂入

5.3通知链的调用和执行

六、netlink 

6.1netlink的创建

6.2注册路由的netlink

6.3通过netlink通信

七、监听连接请求

7.1 内核的监听函数

7.2 内核的监听队列

八、接收连接请求 

8.1 接收连接函数

8.2 异步接收方式

8.3 获取连接请求

九、发送连接请求 

9.1 内核的连接函数

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

9.3 构建、发送TCP数据包

9.4 进化成IP数据包

9.5 进化成以太网数据包

9.6 发送以太网数据包

十、邻居子系统 

10.1邻居子系统的初始化

10.2查找邻居结构

10.3邻居子系统的发送事件

10.4邻居子系统的接收处理

十一 流量控制

11.1 排队规则的初始化

11.2 排队规则的入队和发送

十二 建立连接的过程

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

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

12.3 接收或转发IP数据包

12.4 TCP数据包的处理

12.5 三次握手过程

十三 ICMP控制信息的传输

13.1 发送ICMP信息

13.2 接收ICMP信息

十四 数据包的分段与重组

14.1数据包的分段发送

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

14.3分段数据包的接收队列

14.4查找与创建分段队列

14.5释放和销毁分段队列

十五 发送和接收数据包

15.1 内核的发送、接收函数

15.2  客户端发送数据包

15.3 服务器接收数据包

十六 Socket的关闭

16.1 内核的关闭函数

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

《TCPIP协议内核源码分析》正式版上册.part1:http://u.115.com/file/f5a357d872

《TCPIP协议内核源码分析》正式版上册.part2:http://u.115.com/file/f5aa29c479
原帖地址:http://linux.chinaunix.net/bbs/viewthread.php?tid=1064374



返回顶部

发表评论:

Powered By Z-BlogPHP 1.7.3


知识共享许可协议
本作品采用知识共享署名 3.0 中国大陆许可协议进行许可。
网站备案号粤ICP备15104741号-1