追踪Linux TCP/IP代码运行

出版时间:2010-4  出版社:北京航空航天大学出版社  作者:秦健  页数:578  
Tag标签:无  

前言

学习过TCP/IP协议的读者可能会感觉面对长篇大论的一堆文字往往不知道从何入手,甚至很多读者在认真阅读之后也无法领会协议的作用,更无法进入内核的协议栈阅读代码,以至于无法从事网络方面的开发与维护。然而,高速发展的网络时代要求技术人员必须快速掌握和运用协议的知识,那么有没有一种有效的方法可以帮助我们实现这一目标呢?相信读者可以在本书中找到答案。理论的学习固然是基础,但是不一定具备了理论才开始阅读代码,就像以往大家只采取背单词、记语法的方式学英语,结果十几年之后仍然不会说英语,不会用英语;因为这种英语教学方法只停留在理论层上,现代的英语教学则打破了以理论为主线的学习方法,从应用性和实用性出发,极大改变了学习的效果。因此,本书借鉴现代英语的学习模式,选择从实际应用出发,以应用程序为主线进入Linux内核,通过应用程序的工作过程层层解析内核的协议栈,揭示协议栈的工作路线及网络的真实过程,帮助读者彻底掌握协议栈,使其在阅读完本书之后有一种登上泰山顶峰的兴奋之情。目前,市场针对Linux网络的讲解书籍已经很多,但内容基本都是对理论的泛泛而谈,有的书籍缺少主线,有的书籍缺少与实际应用的结合,有的书籍采用的内核版本过于陈旧,这些问题加大了阅读的难度,导致很多读者使用“压箱子底”的办法放弃了学习。相反,本书克服了上述问题,并且在描述每一个关键过程时,采取穿插图片和逐行解释的方式解决了这些难点。本书针对的是2.6版本的Linux内核,对于内核的进程管理、内存管理、文件系统等内容,读者可以借鉴本书推荐书籍或者直接跳过这些内容只阅读核心部分;对于难以理解的内容可以先放一放,往往在读第二遍时就会自然而解,因为内核的知识点是互为补充的。由于内容繁多,不足之处在所难免,请读者指正。广州工程技术职业学院冯伟老师对本书的图片编辑提供了帮助,罗燕军、杨永祥、张文盛、李华、倪巍、冯伟、刘国兵、葛德奇、朱德良、罗兵、彭海、白瑜、颜诗敏、傅海荧、李柱栋、盛晓辉、修宸、张泽荣、陈嘉顺、时安营、周丹、江均勇、杨硕、罗伟彬、李洪彬、杨春雷、付金平、缪晓及钟海文也对本书的编辑提供了支持,在此向他们的辛勤付出表示感谢。

内容概要

本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。    本书可作为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.本书的主要特点本书以socket应用过程为路线,以函数调用为线索,按照代码的执行线路将整个网络的组织和架构串联成一个整体,这是本书的最大特色。知识点模块化是本书的另一个特点,全部的知识点被分布到各个章节结合实际场景叙述,有时在函数的过程中登台亮相,也有时随着代码的剖析赫然而出,这种灵活的安排加强了阅读的流畅性。2.socket的概念与意义socket这个单词是插座的意思,但是在计算机领域中有时称为插口,也有时称为套接字;无论什么称谓其作用是不变的,它是应用程序在网络通信中的桥梁与纽带。举一个电话通信的例子,在这个例子中用客户与服务商通电话的过程来说明socket的含义与作用。客户需要打电话给服务商,因此例子中有2部电话就好比2个socket进程,电话号码是它们的socket地址,客户的电话相当于客户端socket;同理,服务商的电话相当于服务器的socket。现在客户拿起电话开始拔打服务商的电话号码,相当于客户端socket向服务器socket发出连接请求;服务商如果此时正好空闲就可以接听电话,相当于服务器socket在等待连接请求,电话铃响起说明服务器soeket已经接收到了连接请求,此时服务商拿起电话后双方就可以正式通话了,相当于客户端与服务器的socket连接成功;通话过程中客户的声音被传送到服务商的电话中,相当于客户端socket发送数据而服务器socket接收数据;通话完成后,挂起电话则相当于关闭客户端的socket和服务器的socket。

编辑推荐

《追踪Linux TCP/IP代码运行·基于2.6内核》:从事技术性工作十余年间,作者不断地探索、研究有效的学习方法,不断地提高学习效果,最终在分析Linux内核中得出了“用中学习、用中理解”的方法。这种方法在《追踪Linux TCP/IP代码运行·基于2.6内核》中得到了很好的运用,能帮助读者顺利进入Linux的网络世界,也能使读者掌握正确的学习方法,这就是我们常讲的“授人以鱼,不如授人以渔”。《追踪Linux TCP/IP代码运行·基于2.6内核》采取了从应用到内核,从实践到理论,从软件到硬件的讲解方式。全书通过应用程序这条主线,帮助读者剖析网络通信的具体过程和细节,让读者理解协议线的具体内容,提高读者的网络开发能力。读者在学习时不需要具备网络知识,只需要具备一定的C语言基础就可以顺利阅读。

图书封面

图书标签Tags

评论、评分、阅读与下载


    追踪Linux TCP/IP代码运行 PDF格式下载


用户评论 (总计18条)

 
 

  •   该书以应用程序为主线,通过应用程序的工作过程层层解析内核的协议栈,揭示协议栈的工作路线及网络的真实工作过程,通过不断的深入学习,我感到自己的网络编程能力在不断的提高!
  •   大略看了一下,还不错!对学习LINUX 有帮助
  •   很好,蛮不错的一本书
  •   虽然好多内容暂时还看不懂,但是整体感觉书写的还是挺不错的!!
  •   很喜欢这种叙述方式,打算好好研究研究,为跳槽做准备:)
  •   应该还可以,比较清晰的内容布局,对理解代码有帮助
  •   还没看,刚拿到手!
  •   可惜没有bridge部分
  •   最近翻了一下这本书,感觉内容很散,全是代码罗列。感觉作者也不太懂的样子,很多东西,需要到网上去查半天,才知道来龙去脉。感觉作者有可能很熟悉,但是很难给出一个完整的架构出来。有本老外写的《Understanding Linux ***work Internals》,写得不错。
  •   第一章就是精华吧,其他各章就是罗列kernel代码,函数调用顺序,真正的好书需要在说what的同时,说清楚why,但是可惜,这本书没有做到,可惜了作者已经34岁还号称继续在做技术,这样实在不敢恭维。
  •   纸质不是一般的差!!!
  •   书中有超过2/3是在贴代码,更像是阅读代码的文档,而不是一本书。如果书的定价再便宜2/3,至多不超过25¥,可以买来阅读,否则就不值得了。作者贴了那么多代码,基本是在介绍流程,融入自己的理解和总结相当有限,不应该要价太多啊。
  •   书中2/3以上都是代码,分析也不多,总体来说,不值。
  •   需要一些准备。很不错,就喜欢这种边看边学的书籍。
  •   书虽然是按照《linux源代码情景分析》的模式写的,但比起来差了许多。整本书,讲解太少,代码更多的只是粘贴,添加了一点注释,对于“why”没有讲解清楚。也不知道是不是我网络了解得还不够,这本书对于我难说,很难读。
  •   没有原理介绍,没有背景知识说明,一上来就一堆代码,外加自己的理解……
  •   送货速度还比较快。 书的内容还行
  •   good and cheap
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7