UNIX网络编程

史蒂文斯, 芬纳, 鲁道夫

出版时间

2006-01-01

ISBN

9787302119746

评分

★★★★★
书籍介绍
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。 《UNIX网络编程》(第1卷)(套接口API第3版)内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,《UNIX网络编程》(第1卷)(套接口API第3版)也可作为网络研究和开发人员的自学教材和参考书。
AI导读
核心看点
  • UNIX网络编程权威经典,涵盖套接口API详解
  • 深入解析TCP/UDP协议机制及I/O多路复用
  • 新增IPv6、SCTP协议及密钥管理接口内容
适合谁读
  • 计算机专业高年级本科生及研究生首选教材
  • 从事网络研究与开发的专业技术人员参考书
  • 希望深入理解底层网络原理的资深程序员
读前提醒
  • 内容详尽如辞海,建议重点阅读核心章节
  • 部分翻译略显生硬,可结合英文原版对照
  • 现代架构多用事件驱动,需结合新技术理解
读者共识
  • 作者功力深厚,被誉为网络编程者的案头必备
  • 虽厚但极具价值,面试与实战中常需查阅
  • 部分API已封装,重在理解原理而非死记硬背

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "There are two reasons for the TIME_WAIT state: 1. To implement TCP's full-duplex connection termination reliably. 2. To allow old duplicate segments to expire in the network."
  • "既然发生错误时终止程序的运行是普遍的情况,我们可以定义包裹函数(wrapper function)来简化我们的程序。包裹函数调用实际函数,检查返回值,并在发生错误时终止进程。 int Socket(int family, int type, int protocol) { int n; if ( (n = socket(family, type, protocol)) < 0) err_sys("socket error"); return(n); }"
  • "even though addr is a char*, you actually want to pass in a pointer to a struct in_addr."
  • "If we refer to a service by its name in our code, instead of by its port number, and if the mapping from the name to port number is contained in a file (normally /etc/services), then if the port number changes, all we need to modify is one line in the /etc/services file instead of having to recompil"
  • "如果有多个客户连接同时到达,系统内核在最大数目的限制下把它们排入队列,然后每次返回一个给accept函数"
  • "网际协议簇,在TCP与UDP之间留有一个间隙,指出应用程序可以绕过传输层而直接使用IPv4或Ipv6,称为raw socket"
  • "Posix并不是一个单一标准 第一个Posix标准涉及:进程原语(fork, exec,信号及定时器),进程环境(用户ID,进程组),文件与目录(所有I/O函数),终端I/O,系统数据库(保密字文件和用户组文件),以及tar和cpio归档格式。"
  • "注意,TCP并不保证数据一定会被对方端点接收,因为这是不可能做到的。如果可能的话,TCP就把数据投递到对方端点,否则就(通过放弃重传并中止连接这一手段)通知用户。这么说来,TCP也不能被描述成是100%可靠的协议;它提供的是数据的可靠投递或者故障的可靠通知。"
用户评论
master kevin。
2013-07-21:还是在大二就买了这本书,但一直没拿起来看,各种拖延。了解 linux 下的网络编程,这本很赞。其中讲到了较为底层的网络编程系统调用和几种网络通信模式,譬如阻塞式,非阻塞式,I/O 多路复用等。但离实践还是由于一定的距离,网络编程中重点不在于系统调用,而是对具体的项目想要设计与之适应的网络模式。W.Richard Stevens 爹爹的书,每本都可以是经典。荐!
好书你看得越多越佩服作者的功力
翻译不太流畅,某些术语和APUE及TCPIP差异比较大。
学习计算机网络应用开发很有用,同时也是对C的提高
一个好的问题:三次握手发生在那个socket api中?服务器启动后,它调用socket、bind、listen和accept,并阻塞于accept调用。(我们还没有启动客户)。客户调用socket和connect,后者引起TCP的三路握手过程。当三路握手完成后,客户中的connect和服务器中的accept均返回,连接于是建立。
chapter 1 - 4 for common sense
我以为要先看这本,看来还是要看AP UE再回来看这个
进大厂的铺路砖之一。
写得太细了。 跪着看的。
收藏