追踪Linux TCP/IP代码运行

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > 追踪Linux TCP/IP代码运行

出版社:北京航空航天大学出版社
出版日期:2010-4-1
ISBN:9787512400481
作者:秦健
页数:578页

章节摘录

插图:1.本书的主要特点本书以socket应用过程为路线,以函数调用为线索,按照代码的执行线路将整个网络的组织和架构串联成一个整体,这是本书的最大特色。知识点模块化是本书的另一个特点,全部的知识点被分布到各个章节结合实际场景叙述,有时在函数的过程中登台亮相,也有时随着代码的剖析赫然而出,这种灵活的安排加强了阅读的流畅性。2.socket的概念与意义socket这个单词是插座的意思,但是在计算机领域中有时称为插口,也有时称为套接字;无论什么称谓其作用是不变的,它是应用程序在网络通信中的桥梁与纽带。举一个电话通信的例子,在这个例子中用客户与服务商通电话的过程来说明socket的含义与作用。客户需要打电话给服务商,因此例子中有2部电话就好比2个socket进程,电话号码是它们的socket地址,客户的电话相当于客户端socket;同理,服务商的电话相当于服务器的socket。现在客户拿起电话开始拔打服务商的电话号码,相当于客户端socket向服务器socket发出连接请求;服务商如果此时正好空闲就可以接听电话,相当于服务器socket在等待连接请求,电话铃响起说明服务器soeket已经接收到了连接请求,此时服务商拿起电话后双方就可以正式通话了,相当于客户端与服务器的socket连接成功;通话过程中客户的声音被传送到服务商的电话中,相当于客户端socket发送数据而服务器socket接收数据;通话完成后,挂起电话则相当于关闭客户端的socket和服务器的socket。

前言

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

内容概要

秦健,嵌入式研发工程师。精通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  服务器与客户端的共同关闭索引参考文献

编辑推荐

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

作者简介

《追踪Linux TCP/IP代码运行·基于2.6内核》以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。
《追踪Linux TCP/IP代码运行·基于2.6内核》可作为3G网络开发人员、嵌入式通信产品开发人员、网络应用开发人员、网络管理人员及网络爱好者、从事网络方向的本科生、研究生的参考书。

图书封面


 追踪Linux TCP/IP代码运行下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计5条)

  •     0. 纸张、排版、印刷质量一般,贵;1. 代码不是等宽字体,很多地方不对齐,累眼;2. 不少句子逗号句号不分,累呼吸道;3. 个人而言,真正关心的地方一笔带过甚至只字不提,可以忽略的地方却很罗嗦,总是『逼着』你亲自翻代码,这可以算作本书特色了吧。4. ...
  •     国内几本讲协议栈的书我基本都看了。最有可读性的就属于这本了。文丛socket编程中几个常用的函数开始深入到协议栈,比《深入理解LInux网络》一上来就讲sk_buff的结构和操作更容易理解,随数据流的方向由上至下,几个关键函数关键语句的注释都很好。尤其是三次握手的那两章,清晰的讲述从网卡驱动开始 ,直到tcp缓冲区,数据结构的申请释放,tcp状态机的转换,函数调用的路径。一点遗憾1 文中的几副关键图都画的不好,比如socket, sock, inet_sock...tcp_sock 之间的关系,sk_buff的操作,有点敷衍了事的感觉,这点《深入》写的不错。图文并茂很关键。2 没有全局的介绍协议栈之间的关系,这点《tcp架构》介绍的很好。3 还只是一本讲what、how的书。这个要求有点高了。4 netfilter基本没讲。作者的博客 http://blogold.chinaunix.net/u2/64681/ 也不错,一块推荐!
  •     从书的目录上可以看出作者是投入了相当大的精力,但是这本书的阅读需要读者具备一定的C语言基础,对于不懂编程的读者来说是不适合的,以至无法顺利阅读吧,这本书让我想起了毛德操的《LINUX内核情景分析》,感觉写法上二本书都是针对具体的情景过程进行分析和说明,而毛德操那本书唯一没有完成的就是网络部分,这本书感觉是对那本的补充,尽管作者不同我还是感觉只要读过情景分析的朋友读这本书时也会象我一样朗朗上口。

精彩短评 (总计28条)

  •     最近翻了一下这本书,感觉内容很散,全是代码罗列。感觉作者也不太懂的样子,很多东西,需要到网上去查半天,才知道来龙去脉。感觉作者有可能很熟悉,但是很难给出一个完整的架构出来。有本老外写的《Understanding Linux ***work Internals》,写得不错。
  •     南图 需再读
  •     第一章就是精华吧,其他各章就是罗列kernel代码,函数调用顺序,真正的好书需要在说what的同时,说清楚why,但是可惜,这本书没有做到,可惜了作者已经34岁还号称继续在做技术,这样实在不敢恭维。
  •     书中有超过2/3是在贴代码,更像是阅读代码的文档,而不是一本书。如果书的定价再便宜2/3,至多不超过25¥,可以买来阅读,否则就不值得了。作者贴了那么多代码,基本是在介绍流程,融入自己的理解和总结相当有限,不应该要价太多啊。
  •     虽然好多内容暂时还看不懂,但是整体感觉书写的还是挺不错的!!
  •     条理清晰,不过代码有点长。
  •     需要一些准备。很不错,就喜欢这种边看边学的书籍。
  •     大略看了一下,还不错!对学习LINUX 有帮助
  •     打开书全都是代码,根本没心情看下去。还是understanding Linux kernel那种提纲挈领的写作方式好。
  •     送货速度还比较快。 书的内容还行
  •     不错,3,4层都有讲,有重心。 国内讲协议栈最好的一本。
  •     没有原理介绍,没有背景知识说明,一上来就一堆代码,外加自己的理解……
  •     很不错的一本书。不过要完全看懂还是需要很深的经验和积累。
  •     书中2/3以上都是代码,分析也不多,总体来说,不值。
  •     可惜没有bridge部分
  •     采用的是类《linux源代码情景分析》的风格,看了一点,个人觉得比之《情景分析》还是差了很多。代码的分析及讲解太少,代码占的篇幅太大,与作者在序中写的“让读者知其然知其所以然”的目标差距巨大。读起来显然没有《情景分析》流畅。
  •     很好,蛮不错的一本书
  •     该书以应用程序为主线,通过应用程序的工作过程层层解析内核的协议栈,揭示协议栈的工作路线及网络的真实工作过程,通过不断的深入学习,我感到自己的网络编程能力在不断的提高!
  •     这本书不适合新人读的。。。。思路还好, 可是写的太差。怎么说呢?作者省了很多笔墨在一些结构体变量的用途介绍上, 流水账式的从顶至下的叙述几个系统调用的流程。。。简直晕死了。。。完全,没有考虑过读者如果变量用法都知道了, 基本上也是大牛了,谁来看你的书呀。。。写作初中就不对。。。哥上大学式,二呼呼买了这本,看的快吐血,有没有呀。。。还是赞下樊东东那本,还有国外的那本大部头。。。
  •     这本书。。。怎么说呢?其实TCP源码讲得并不详细,就是把Linux网络过了一遍,TCP源码还是《Linux源码剖析那本书》好些
  •     代码讲得很详细,但是函数嵌套调用太深,不利于阅读,如果有sourceinsight一起跟踪代码就会好很多,将的内核版本为2.6.18较老了
  •     还没看,刚拿到手!
  •     书虽然是按照《linux源代码情景分析》的模式写的,但比起来差了许多。整本书,讲解太少,代码更多的只是粘贴,添加了一点注释,对于“why”没有讲解清楚。也不知道是不是我网络了解得还不够,这本书对于我难说,很难读。
  •     应该还可以,比较清晰的内容布局,对理解代码有帮助
  •     看了上半册
  •     很喜欢这种叙述方式,打算好好研究研究,为跳槽做准备:)
  •     纸质不是一般的差!!!
  •     good and cheap
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024