Linux内核网络栈源代码情景分析

出版时间:2010-1  出版社:人民邮电  作者:曹桂平  页数:809  
Tag标签:无  

前言

早在2001年年初我创办《永远的UNIX》(fanqiang.com)网站时,就梦想有一天能将众多技术高手的工作经验集结成册,使广大网友在实际应用中能随手翻查。那时候国内爱好者的学习热情很高,为了给网友提供一个更易于互动交流的平台,我在2001年年底创建了www.chinaunix.net社区网站(简称CU)。经过8年的发展,在广大CLIer的支持下,CU社区的注册用户已经超过百万,ChinaLlnix已经成为全球最大、人气最旺的以交流Linux、UNIX和开源技术为主的中文社区。CU网站聚集了大量富有工作经验的系统架构师、软件工程师、DBA和网络架构工程师等,她已经成为广大开源技术爱好者学习、工作和生活中不可缺少的伙伴。随着网站一点点壮大,网友也不断成长起来。大量的版主利用业余时间义务解答网友问题、维护论坛版块秩序、服务广大网友。很多网友将自己的学习、工作经验发帖分享出来,更有网友花费大量时间将自己多年的经验整理成书,供更多的人学习、分享。他们的成长是国内技术社区成长的基础,也必将推动国内技术社区的进一步发展。今天,在CU管理员瑞儿mm(周平)、人民邮电出版社的李大微经理、黄焱编辑和广大CU作者们的共同努力下,这套“ChinaUnix技术图书大系”终于和大家见面了,非常感谢人民邮电出版社的鼎立支持!人民邮电出版社是工业和信息化部主管的大型专业出版社,他们出版了一系列优秀的图书,在读者中有着巨大的影响力。

内容概要

  本书主要对Linux 1.2.13内核协议栈的全部源代码做了详细的分析,该版本所有代码都在一个文件夹中,每种协议的实现都只有一个文件与之对应,分析该版本源代码可以方便读者迅速掌握Linux网络协议结构。  本书共分为5个部分。具体内容包括网络栈总体架构分析、网络协议头文件分析、BSD socket层实现分析、INET socket层实现分析、网络层实现分析、链路层实现分析、网络设备驱动程序分析、系统网络栈初始化等内容。  本书适合Linux网络开发人员及Linux内核爱好者阅读。

作者简介

曹桂平:中国科学技术大学博士,对操作系统和网络技术具有极其深厚的兴趣,精通Linux内核及其网络线,ARM、PowerPC体系结构,曾开发Linux、Vxworks等平台的设备驱动,目前正致力于高速高精度数据采集方面的研究。

书籍目录

第1部分 网络栈总体架构 第0章 网络栈总体架构分析   0.1 网络栈本质及其分层架构   0.2 系统调用接口到内核的请求传递    0.2.1 第一层入口:accept.S文件    0.2.2 第二层入口:socket.S文件    0.2.3 第三层入口:entry.S文件 第2部分 网络协议 第1章 网络协议头文件分析   1.1 etherdevice.h头文件   1.2 icmp.h头文件   1.3 if.h头文件   1.4 if_arp.h头文件   1.5 if_ether.h头文件   1.6 if_plip.h头文件   1.7 if_slip.h头文件   1.8 igmp.h头文件   1.9 in.h头文件   1.10 inet.h头文件   1.11 interrupt.h头文件   1.12 ip.h头文件   1.13 ip_fw.h头文件   1.14 ipx.h头文件   1.15 net.h头文件   1.16 netdevice.h头文件   1.17 notifier.h头文件   1.18 ppp.h头文件   1.19 route.h头文件   1.20 skbuff.h头文件   1.21 socket.h头文件   1.22 sockios.h头文件   1.23 tcp.h头文件   1.24 timer.h头文件   1.25 udp.h头文件   1.26 un.h头文件   1.27 本章小结 第3部分 网络栈实现分析 第2章 BSD socket层实现分析   2.1 protocols.c文件   2.2 socket.c文件    2.2.1 头文件声明、全局变量定义、相关函数声明    2.2.2 move_addr_to_kernel和move_addr_to_user函数    2.2.3 get_fd函数    2.2.4 socki_lookup和sockfd_lookup函数    2.2.5 sock_alloc函数    2.2.6 sock_release_peer、sock_release和sock_close函数    2.2.7 网络套接字普通文件接口函数    2.2.8 sock_awaitconn函数    2.2.9 sock_socket函数    2.2.10 sock_socketpair函数    2.2.11 sock_bind函数    2.2.12 sock_listen函数    2.2.13 sock_accept函数    2.2.14 sock_connect函数    2.2.15 sock_getsockname和sock_getpeername函数    2.2.16 sock_send和sock_sendto函数    2.2.17 sock_recv和sock_recvfrom函数    2.2.18 sock_setsockopt和sock_getsockopt函数    2.2.19 sock_shutdown函数    2.2.20 sock_fcntl函数    2.2.21 sys_socketcall函数    2.2.22 sock_register和sock_unregister函数    2.2.23 proto_init函数    2.2.24 sock_init函数    2.2.25 socket_get_info函数    2.2.26 socket.c文件小结  第3章 INET socket层实现分析 第4章 传输层实现分析 第5章 网络层实现分析 第6章 链路层实现分析第4部分 网络设备驱动程序 第7章 网络设备驱动程序分析 第5部分 系统网络栈初始化 第8章 系统网络栈初始化 附录A TCP协议可靠性数据传输实现原理分析 主要参考文献 

章节摘录

插图:该字段是一个联合类型,表示了数据包在不同处理层次上所到达的处理位置。如在链路层上,eth指针有效,指向以太网首部第一个字节位置;在网络层上,iph指针有效指向IP首部第一个字节位置。raw指针随层次变化而变化,在链路层上时,其等于eth,在网络层上时,其等于iph。seq是针对使用TCP协议的待发送数据包而言的,此时该字段值表示该数据包的,ACK值。ACK值等于数据包中第一个数据的序列号加上数据的长度值。iphdr:指向IP首部的指针,此处特别地分出了一个字段用于指向IP首部,主要用于RAW套接字。mem-len:该字段表示skbuff结构大小加上数据帧的总长度。len:该字段只表示数据帧长度,即len=mem-len-sizeof fraglen、fraglist:这两个字段用于分片数据包。。fraglen表示分片数据包个数,而fraglist指向分片数据包队列。truesize.意义同mem-len。sad&:数据包发送的源端IP地址。daddr:数据包最终目的端IP地址。raddr:数据包下一站IP地址。acked、used、flee、arp:acked=1表示该数据包已得到确认,可以从重发队列中删除。used=l表示该数据包的数据已被应用程序读完,可以进行释放。free=1用于数据包发送,当某个待发送数据包flee标志位等于l,则表示无论该数据包是否发送成功,在进行发送操作后立即释放,无需缓存。arp字段用于待发送数据包,该字段等于1表示此待发送数据包已完成MAC首部的建立。arp=0表示MAC首部中目的端硬件地址尚不知晓,故需使用.ARP协议询问对方,在:MAC首部尚未完全建立之前,该数据包一直处于发送缓冲队列中(device结构中buffs数组元素指向的某个队列以及ARP协议的某个队列中)。tries、lock、localroute:。tries字段表示该数据包已进行Pies试发送,如果试发送超出域值,则会放弃该数据包的发送。

编辑推荐

《Linux内核网络栈源代码情景分析》:剖析核心架构,直击Linux内核网络栈本质详细分析300多个核心函数和头文件,代码注释丰富两种方式分别讲述Linux1.2.13内核网络栈实现的所有源代码方便读者迅速掌握Linux网络协议结构学Linux内核网络栈源代码,从这里开始

图书封面

图书标签Tags

评论、评分、阅读与下载


    Linux内核网络栈源代码情景分析 PDF格式下载


用户评论 (总计14条)

 
 

  •   对研究linux内核很有帮助,很好。
  •   做网络通信的可以看看 ,TCPV2也是讲解实现的,配合来看
  •   书上讲的内容还是挺不错的!
  •   好书真的好好阅读啊~~
  •   讲了大量源码,特别易学~
  •   以前下过电子版了看过。觉得很不错就买了。
  •   书还不错,到货速度也挺快的,因为缺个角换了一本,速度也很快的。
  •   这本书基于的内核版本有点老,不过初学者可以参考相关协议栈实现的思路。整体也还可以。
  •   尤其是做嵌入式开发,此本书值得一看。
  •   国人的好书
  •   内核太老,用的是1.3的内核协议,不过对整个协议如何实现的可以学习
  •   内容还行,据说版本比较旧~
  •   书没问题,就是本旧书啊,什么北京化工大学 图书馆的馆藏书啊,谁知道多少手了啊。。。。
  •   有好的,也有坏的,但是这本书应该是值得的
 

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

京ICP备13047387号-7