描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787302335283丛书名: Linux典藏大系
深入探讨Linux应用层和内核层的网络编程,详细讲解HTTP服务器、协议栈和防火墙三个典型案例的实际开发过程
内容全面:全书涵盖Linux网络编程从基础到高级开发的方方面面知识点
内容深入:重点讲解了技术性较强的Linux用户空间网络编程及内核网络编程
注重原理:对每个知识点都从原始概念和基本原理进行了详细和透彻的分析
插图丰富:对比较复杂和难度较高的内容绘制了220余幅原理图进行讲解
代码经典:书中的示例代码大多是从实际项目总结而来,有很强的实用性
案例典型:详细介绍了HTTP网络服务器、协议栈和防火墙的实现过程
Linux精品图书推荐(请点丛书链接查看)
《Linux网络编程(第2版)》是获得大量读者好评的“Linux典藏大系”中的《Linux网络编程》的第2版。《Linux网络编程(第2版)》第1版出版后获得了读者的高度评价。《Linux网络编程(第2版)》循序渐进,从应用层到Linux内核,从基本知识点到综合案例,全面、系统地向读者介绍了如何在Linux下进行网络程序设计。《Linux网络编程(第2版)》涉及面广,从基本的编程工具介绍和编程环境搭建,到高级技术和核心原理,再到项目实战,几乎涉及Linux网络编程的所有重要知识。
《Linux网络编程(第2版)》共分4篇。第1篇介绍Linux操作系统概述、Linux编程环境、文件系统简介、程序、进程和线程;第2篇介绍TCP/IP协议族简介、应用层网络服务程序简介、TCP网络编程基础、服务器和客户端信息的获取、数据的IO和复用、基于UDP协议的接收和发送、高级套接字、套接字选项、原始套接字、服务器模型选择,以及IPv6的简介;第3篇介绍Linux内核中网络部分结构,以及分布和netfilter框架内报文处理;第4篇介绍三个网络编程的实例:Web服务器的例子SHTTPD、网络协议栈的例子SIP、防火墙的例子SIPFW。
《Linux网络编程(第2版)》适合所有想全面学习Linux网络编程的人员阅读,也适合已经从事Linux网络开发的工程技术人员使用。对于广大的Linux平台下的网络程序设计人员,《Linux网络编程(第2版)》更是一本不可多得的参考手册。
第1篇Linux网络开发基础
第1章Linux操作系统概述
1.1Linux发展历史
1.1.1Linux的诞生和发展
1.1.2Linux名称的由来
1.2Linux的发展要素
1.2.1UNIX操作系统
1.2.2Minix操作系统
1.2.3POSIX标准
1.3Linux与UNIX的异同
1.4操作系统类型选择和内核版本的选择
1.4.1常见的不同公司发行的Linux异同
1.4.2内核版本的选择
1.5Linux的系统架构
1.5.1Linux内核的主要模块
1.5.2Linux的文件结构
1.6GNU通用公共许可证
1.6.1GPL许可证的历史
1.6.2GPL的自由理念
1.6.3GPL的基本条款
1.6.4关于GPL许可证的争议
1.7Linux软件开发的可借鉴之处
1.8小结
第2章Linux编程环境
2.1Linux环境下的编辑器
2.1.1Vim使用简介
2.1.2使用Vim建立文件
2.1.3使用Vim编辑文本
2.1.4Vim的格式设置
2.1.5Vim配置文件.vimrc
2.1.6使用其他编辑器
2.2Linux下的GCC编译器工具集
2.2.1GCC简介
2.2.2编译程序的基本知识
2.2.3单个文件编译成执行文件
2.2.4编译生成目标文件
2.2.5多文件编译
2.2.6预处理
2.2.7编译成汇编语言
2.2.8生成和使用静态链接库
2.2.9生成动态链接库
2.2.10动态加载库
2.2.11GCC常用选项
2.2.12编译环境的搭建
2.3Makefile文件简介
2.3.1一个多文件的工程例子
2.3.2多文件工程的编译
2.3.3Makefile的规则
2.3.4Makefile中使用变量
2.3.5搜索路径
2.3.6自动推导规则
2.3.7递归make
2.3.8Makefile中的函数
2.4用GDB调试程序
2.4.1编译可调试程序
2.4.2使用GDB调试程序
2.4.3GDB常用命令
2.4.4其他的GDB
2.5小结
第3章文件系统简介
3.1Linux下的文件系统
3.1.1Linux下文件的内涵
3.1.2文件系统的创建
3.1.3挂接文件系统
3.1.4索引节点inode
3.1.5普通文件
3.1.6设备文件
3.1.7虚拟文件系统VFS
3.2文件的通用操作方法
3.2.1文件描述符
第4章 程序、进程和线程 94
第2篇 Linux用户层网络编程
第5章 TCP/IP协议族简介 138
第6章应用层网络服务程序简介 167
第7章 TCP网络编程基础 181
第8章服务器和客户端信息的获取 209
第9章数据的IO和复用 236
第10章基于UDP协议的接收和发送 265
第11章高级套接字 290
第12章套接字选项 328
第13章原始套接字 374
第14章服务器模型选择 410
第15章 IPv6简介 437
第3篇 Linux内核网络编程
第16章 Linux内核中网络部分结构以及分布 464
第17章 netfilter框架内报文处理 478
第4篇综合案例
第18章一个简单Web服务器的例子SHTTPD 512
第19章一个简单网络协议栈的例子SIP 558
第20章一个简单防火墙的例子SIPFW 620
本书是获得了大量读者好评的“Linux典藏大系”中的《Linux网络编程》的第2版。本书全面、系统地介绍了Linux网络编程技术,其中通过实例重点介绍了Linux的应用层网络设计、网络协议栈的实现原理和Linux内核防火墙的技术。学完本书之后,读者可以有编写比较复杂项目的本领。
关于“Linux典藏大系”
“Linux典藏大系”是清华大学出版社自2010年1月以来陆续推出的一个图书系列,截止2013年1月,已经出版了10余个品种。该系列图书涵盖了Linux技术的方方面面,可以满足各个层次和各个领域的读者学习Linux技术的需求。该系列图书自出版以来获得了广大读者的好评,已经成为Linux图书市场上最耀眼的明星品牌之一,其销量在同类图书中也名列前茅,其中一些图书还获得了“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”。该系列图书出版过程中也得到了国内Linux领域最知名的技术社区ChinaUnix(简称CU)的大力支持和帮助,读者在CU社区中就图书的内容与活跃在CU社区中的Linux技术爱好者进行广泛交流,将会取得了良好的学习效果。
关于本书第2版
本书第1版出版后深受读者好评,并被ChinaUNIX技术社区所推荐。但是随着Linux技术的发展,本书第1版的内容与Linux各个新版本有一定出入,这给读者的学习造成了一些不便。应广大读者的要求,我们结合Linux技术的最新发展推出第2版图书。相比第1版,第2版图书在内容上的变化主要体现在以下几个方面:
(1)操作系统环境从原有的Debian改为更为通用的Ubuntu。
(2)Linux内核介绍增加了3。*系列。
(3)对IT业界的动态进行了更新。
(4)对一些专有名词的大小写进行了更正,如VIM、Emacs。
(5)由于Vim区分大小写,尤其在快捷键上面。为了避免读者误操作,所以对原有的快捷键大小写进行了重新确认,并更正部分错误的大小写。
(6)更正了第1版中的部分描述错误,如Objective-C。
(7)对GCC软件包进行了更新。
(8)为了便于读者阅读和使用代码,对于完整的代码增加了行号。
(9)更正了部分调试选项的大小写错误。
(10)对部分Shell命令进行了更新,如fdisk。
(11)对Linux涉及的硬件信息进行了更新,如对Ext4的支持。
(12)对需要重点注意的关键代码做了加粗。
(13)对部分代码缺少的库文件进行了补充。
(14)修改了部分函数库的包含关系。
(15)修改了部分变量的数据类型。
(16)修改了部分代码行号的说明错误。
本书的特点
1.循序渐进,由浅入深
为了方便读者学习,本书首先介绍Linux的开发环境,然后介绍基本的网路程序设计方法,再进行Linux内核的网络设计方法。最后,通过3个综合案例,综合运用上述知识,让读者更深刻地了解网络程序设计的知识。在每一部分的介绍中都是按照由浅入深的方式进行介绍,先介绍基础知识,再结合高级知识进行介绍。
2.技术全面,内容充实
本书基本涵盖了Linux网络程序设计的所有知识面,特别对于高级网络编程、原始套接字等高级应用层网络程序设计给出了全面的介绍和丰富的例子程序。除了用户界面的网络程序设计外,本书还对内核空间的网络程序设计进行了详细的介绍,针对netfilter框架,做了很细致的讲解,并给出了一个全面使用netfilter框架的案例,以方便读者深入了解。
3.对比讲解,理解深刻
由于Linux程序设计的知识用于空间和内核空间的代码和模块是相互作用的,在多个主要函数介绍过程中,本书对用户空间和内核空间进行交互式的对比介绍,使读者在了解如何使用的情况下,更深入地了解为什么这样用,所谓“知其然并知其所以然”。
4.案例精讲,深入剖析
根据本人多年的项目经验,只有实际接触案例和代码才能够对知识点更深入地了解。本书在介绍了Linux网络程序设计知识点的基础上,通过具有典型意义的3个案例,对各个知识点包括应用层的HTTP协议的Web服务器、协议栈原理的协议栈案例和内核网络的防火墙案例进行了深入剖析。
本书内容及体系结构
第1篇 Linux网络开发基础(第1~4章)
本篇主要内容包括:Linux操作系统概述、Linux编程环境、文件系统简介、程序、进程和线程。通过本篇的学习,读者可以掌握Linux编程的基础知识,以及编程环境。
第2篇 Linux用户层网络编程(第5~15章)
本篇主要内容包括:TCP/IP协议族简介、应用层网络服务程序简介、TCP网络编程基础、服务器和客户端信息的获取、数据的IO和复用、基于UDP协议的接收和发送、高级套接字、套接字选项、原始套接字、服务器模型选择、IPv6简介。通过本篇的学习,读者可以掌握Linux网络编程的大部分知识。
第3篇 Linux内核网络编程(第16章和第17章)
本篇主要内容包括:Linux内核中网络部分结构,以及分布和netfilter框架内报文处理。通过本篇的学习,读者可以初步了解Linux内核网络编程的知识。
第4篇 综合案例(第18~20章)
本篇主要内容包括:一个简单Web服务器的例子SHTTPD、一个简单网络协议栈的例子SIP、一个简单防火墙的例子SIPFW。通过本篇的学习,读者可以全面了解一个完整可用的Linux网络程序是如何编写的。
本书学习建议
* 建议没有基础的读者,从前至后顺次阅读,尽量不要跳跃。
* 书中的实例和示例建议读者都要亲自上机动手实践,学习效果会更好。
* 第4篇的内容偏重于实战,这部分内容在初期可以不需要全面掌握,只要理解思想即可,等读者有了较多开发经验后可进一步研读。
本书读者对象
* 想全面学习Linux网络编程的人员;
* Linux网络编程从业人员;
* Linux网络编程爱好者;
* 大中专院校的学生;
* 社会培训班的学员;
* 需要一本案头必备手册的开发人员。
虽然我们对书中所述的内容都尽量予以核实,并多次进行文字校对,但可能还存在疏漏和不足之处,恳请读者批评指正。
编著者
评论
还没有评论。