UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)
基本信息
- 原书名: Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
- 原出版社: Addison-Wesley Professional
- 作者: (美)W. Richard Stevens Bill Fenner Andrew M. Rudoff [作译者介绍]
- 丛书名: 图灵程序设计丛书 操作系统
- 出版社:人民邮电出版社
- ISBN:9787115228406
- 上架时间:2010-6-28
- 出版日期:2010 年6月
- 开本:16开
- 页码:804
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > 综合
计算机 > 操作系统 > UNIX
编辑推荐
UNIX网络专家W. Richard Stevens的传世之作的最新版。
世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔 紧跟网络技术新发展,深入探讨最新关键标准、实现和技术 所有示例均是在UNIX系统中测试通过的真实的、可运行的代码
推荐阅读
内容简介回到顶部↑
这是一部传世之作!顶级网络编程专家bill fenner和andrew m. rudoff应邀执笔,对w. richard stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了ipv6、sctp协议和密钥管理套接字等内容,深入讨论了最新的关键标准、实现和技术。
书中的所有示例都是在unix系统上测试通过的真实的、可运行的代码,继承了stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站(www.turingbook.com)本书网页免费注册下载这些示例的源代码。
本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
书中的所有示例都是在unix系统上测试通过的真实的、可运行的代码,继承了stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站(www.turingbook.com)本书网页免费注册下载这些示例的源代码。
本书为unix网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
作译者回到顶部↑
本书提供作译者介绍
W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。
Bill Fenner AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。
Andrew M. Rudoff Sun公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
.. << 查看详细
Bill Fenner AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。
Andrew M. Rudoff Sun公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
.. << 查看详细
目录回到顶部↑
第一部分 简介和tcp/ip
第1章 简介 2
1.1 概述 2
1.2 一个简单的时间获取客户程序 5
1.3 协议无关性 9
1.4 错误处理:包裹函数 10
1.5 一个简单的时间获取服务器程序 12
1.6 本书中客户/服务器程序示例索引表 14
1.7 osi模型 16
1.8 bsd网络支持历史 17
1.9 测试用网络及主机 19
1.10 unix标准 22
1.11 64位体系结构 24
1.12 小结 25
习题 25
第2章 传输层:tcp、udp和sctp 27
2.1 概述 27
2.2 总图 27
2.3 用户数据报协议(udp) 29
2.4 传输控制协议(tcp) 30
第1章 简介 2
1.1 概述 2
1.2 一个简单的时间获取客户程序 5
1.3 协议无关性 9
1.4 错误处理:包裹函数 10
1.5 一个简单的时间获取服务器程序 12
1.6 本书中客户/服务器程序示例索引表 14
1.7 osi模型 16
1.8 bsd网络支持历史 17
1.9 测试用网络及主机 19
1.10 unix标准 22
1.11 64位体系结构 24
1.12 小结 25
习题 25
第2章 传输层:tcp、udp和sctp 27
2.1 概述 27
2.2 总图 27
2.3 用户数据报协议(udp) 29
2.4 传输控制协议(tcp) 30
前言回到顶部↑
概述
本书面向的读者是那些希望自己编写的程序能使用称为套接字(socket)的API进行彼此通信的人。有些读者可能已经非常熟悉套接字了,因为这个模型几乎已经成了网络编程的同义词,但有些读者可能仍需要从头开始学习。本书想达到的目标是向大家提供网络编程指导。这些内容不仅适用于专业人士,也适用于初学者;不仅适用于维护已有代码,也适用于开发新的网络应用程序;此外,还适用于那些只是想了解一下自己系统中网络组件的工作原理的人。
书中的所有示例都是在Unix系统上测试通过的真实的、可运行的代码。但是,考虑到许多非Unix的操作系统也支持套接字API,因而我们选取的示例与所讲述的一般性概念,在很大程度上是与操作系统无关的。几乎每种操作系统都提供了大量的网络应用程序,如网页浏览器、电子邮件客户端、文件共享服务器等。我们按常规的划分方法把这些应用程序分为客户程序和服务器程序,并在书中多次编写了相应的小型示例。
面向Unix介绍网络编程自然免不了要介绍Unix本身和TCP/IP的相关背景知识。需要更详尽的背景知识时,我们会指引读者查阅其他书籍。本书中经常提到以下4本书,我们将其简记如下:
APUE:Advanced Programming in the UNIX Environment [Stevens 1992];
TCPv1:TCP/IP Illustrated, Volume 1 [Stevens 1994];
TCPv2:TCP/IP Illustrated, Volume 2 [Wright and Stevens 1995];
TCPv3:TCP/IP Illustrated, Volume 3 [Stevens 1996]。
其中TCPv2包含了与本书内容密切相关的细节,它描述并给出了套接字API中网络编程函数(socket、bind、connect等)的真实4.4BSD实现。如果已经理解某个特性的实现,那么在应用程序中使用该特性就更有意义了。
与第2版的区别
从20世纪80年代开始,套接字就差不多是现在这个样子了。时至今日,套接字仍然是网络API的首选,其最初的设计的确值得称道。因此,当读者发现我们对出版于1998年的第2版又做了不少改动时,可能会觉得惊讶。本书中所做的改动归纳如下。
新版本包含了IPv6的最新信息。在第2版出版时,IPv6尚处于草案阶段,这些年来已经有所发展。
更新了全部函数和示例的描述,以反映最新的POSIX规范(POSIX 1003.1-2001),即Single Unix Specification Version 3。
删去了X/Open传输接口(XTI)的内容。这个API已经不常用了,连最新的POSIX 规范也不再提到。
删去了事务TCP协议(T/TCP)的内容。
新增了三章用于描述一种相对较新的传输协议——SCTP。这个可靠的面向消息的协议能够在两个端点之间提供多个流,并为多归属技术提供传输层支持。该协议最初是为了在因特网上传输电话信号而设计的,但它的一些特性可以用于许多应用。
新增一章描述密钥管理套接字,该套接字可用于网际协议安全(IPsec)和其他网络安全服务。
第2版中使用的机器及Unix变体都按最新版本更新,示例也根据机器的特性做了修改。许多情况下,修改示例是因为操作系统厂商修正了程序缺陷或者新增了特性。但读者可以想见,新的缺陷总能不时地被发现。本书中用于测试示例的机器如下:
运行MacOS/X 10.2.6的Apple Power PC;
运行HP-UX 11i 的HP PA-RISC;
本书面向的读者是那些希望自己编写的程序能使用称为套接字(socket)的API进行彼此通信的人。有些读者可能已经非常熟悉套接字了,因为这个模型几乎已经成了网络编程的同义词,但有些读者可能仍需要从头开始学习。本书想达到的目标是向大家提供网络编程指导。这些内容不仅适用于专业人士,也适用于初学者;不仅适用于维护已有代码,也适用于开发新的网络应用程序;此外,还适用于那些只是想了解一下自己系统中网络组件的工作原理的人。
书中的所有示例都是在Unix系统上测试通过的真实的、可运行的代码。但是,考虑到许多非Unix的操作系统也支持套接字API,因而我们选取的示例与所讲述的一般性概念,在很大程度上是与操作系统无关的。几乎每种操作系统都提供了大量的网络应用程序,如网页浏览器、电子邮件客户端、文件共享服务器等。我们按常规的划分方法把这些应用程序分为客户程序和服务器程序,并在书中多次编写了相应的小型示例。
面向Unix介绍网络编程自然免不了要介绍Unix本身和TCP/IP的相关背景知识。需要更详尽的背景知识时,我们会指引读者查阅其他书籍。本书中经常提到以下4本书,我们将其简记如下:
APUE:Advanced Programming in the UNIX Environment [Stevens 1992];
TCPv1:TCP/IP Illustrated, Volume 1 [Stevens 1994];
TCPv2:TCP/IP Illustrated, Volume 2 [Wright and Stevens 1995];
TCPv3:TCP/IP Illustrated, Volume 3 [Stevens 1996]。
其中TCPv2包含了与本书内容密切相关的细节,它描述并给出了套接字API中网络编程函数(socket、bind、connect等)的真实4.4BSD实现。如果已经理解某个特性的实现,那么在应用程序中使用该特性就更有意义了。
与第2版的区别
从20世纪80年代开始,套接字就差不多是现在这个样子了。时至今日,套接字仍然是网络API的首选,其最初的设计的确值得称道。因此,当读者发现我们对出版于1998年的第2版又做了不少改动时,可能会觉得惊讶。本书中所做的改动归纳如下。
新版本包含了IPv6的最新信息。在第2版出版时,IPv6尚处于草案阶段,这些年来已经有所发展。
更新了全部函数和示例的描述,以反映最新的POSIX规范(POSIX 1003.1-2001),即Single Unix Specification Version 3。
删去了X/Open传输接口(XTI)的内容。这个API已经不常用了,连最新的POSIX 规范也不再提到。
删去了事务TCP协议(T/TCP)的内容。
新增了三章用于描述一种相对较新的传输协议——SCTP。这个可靠的面向消息的协议能够在两个端点之间提供多个流,并为多归属技术提供传输层支持。该协议最初是为了在因特网上传输电话信号而设计的,但它的一些特性可以用于许多应用。
新增一章描述密钥管理套接字,该套接字可用于网际协议安全(IPsec)和其他网络安全服务。
第2版中使用的机器及Unix变体都按最新版本更新,示例也根据机器的特性做了修改。许多情况下,修改示例是因为操作系统厂商修正了程序缺陷或者新增了特性。但读者可以想见,新的缺陷总能不时地被发现。本书中用于测试示例的机器如下:
运行MacOS/X 10.2.6的Apple Power PC;
运行HP-UX 11i 的HP PA-RISC;
序言回到顶部↑
本书的第1版本于1990年问世,并迅速成为程序员学习网络编程的权威参考书。时至今日,计算机网络技术已发生了翻天覆地的变化。只要看看第1版给出的用于征集反馈意见的地址(“uunet!hsi!netbook”)就一目了然了。(有多少读者能看出这是20世纪80年代很流行的UUCP拨号网络的地址?)
现在UUCP网络已经很罕见了,而无线网络等新技术则变得无处不在!在这种背景下,新的网络协议和编程范型业已开发出来,但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。
这本书填补了这一空白。拥有本书旧版的读者一定想要一个新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容。所有人都非常期待本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。
阅读本书是一种享受,我收获颇丰。相信大家定会有同感。
Sam Leffler
现在UUCP网络已经很罕见了,而无线网络等新技术则变得无处不在!在这种背景下,新的网络协议和编程范型业已开发出来,但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。
这本书填补了这一空白。拥有本书旧版的读者一定想要一个新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容。所有人都非常期待本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。
阅读本书是一种享受,我收获颇丰。相信大家定会有同感。
Sam Leffler
媒体评论回到顶部↑
“所有人都非常期待这本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书是一种享受,我收获颇丰。相信大家定会有同感。”
——Sam Leffler,FreeBSD基金会副主席
“这部著作在计算机科学领域里的传奇得以延续,Bill Fenner和Andrew Rudoff居功至伟。”
——Art Sedighi
“这套书是学习网络编程最好的书。全世界最最好的,远超群伦。”
——S. Devasundaram
——Thomas Haugland Jensen
“这本书不会让你一夜之间成为专家,但它终究会让你成为专家。”
——John Nguyen
——Sam Leffler,FreeBSD基金会副主席
“这部著作在计算机科学领域里的传奇得以延续,Bill Fenner和Andrew Rudoff居功至伟。”
——Art Sedighi
“这套书是学习网络编程最好的书。全世界最最好的,远超群伦。”
——S. Devasundaram
——Thomas Haugland Jensen
“这本书不会让你一夜之间成为专家,但它终究会让你成为专家。”
——John Nguyen








点击看大图






加载中...

