UNIX网络编程 卷1 套接字联网API 第3版 pdf

UNIX网络编程 卷1 套接字联网API 第3版

内容简介

《UNIX网络编程 卷1 套接字联网API(第3版)》是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,还深入分析了流这种设备驱动机制。

本书几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

作者简介

W. Richard Stevens(1951—1999),国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。

Bill Fenner,ATT实验室主任研究员,专攻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
2.5 流控制传输协议(SCTP) 31
2.6 TCP连接的建立和终止 31
2.7 TIME_WAIT状态 37
2.8 SCTP关联的建立和终止 38
2.9 端口号 42
2.10 TCP端口号与并发服务器 43
2.11 缓冲区大小及限制 45
2.12 标准因特网服务 50
2.13 常见因特网应用的协议使用 51
2.14 小结 52
习题 53
第二部分 基本套接字编程
第3章 套接字编程简介 56
3.1 概述 56
3.2 套接字地址结构 56
3.3 值—结果参数 61
3.4 字节排序函数 63
3.5 字节操纵函数 66
3.6 inet_aton、inet_addr和inet_ntoa函数 67
3.7 inet_pton和inet_ntop函数 68
3.8 sock_ntop和相关函数 70
3.9 readn、writen和readline函数 72
3.10 小结 76
习题 76
第4章 基本TCP套接字编程 77
4.1 概述 77
4.2 socket函数 77
4.3 connect函数 80
4.4 bind函数 81
4.5 listen函数 84
4.6 accept函数 88
4.7 fork和exec函数 90
4.8 并发服务器 91
4.9 close函数 93
4.10 getsockname和getpeername函数 94
4.11 小结 96
习题 96
第5章 TCP客户/服务器程序示例 97
5.1 概述 97
5.2 TCP回射服务器程序:main函数 97
5.3 TCP回射服务器程序:str_echo函数 98
5.4 TCP回射客户程序:main函数 99
5.5 TCP回射客户程序:str_cli函数 100
5.6 正常启动 101
5.7 正常终止 102
5.8 POSIX信号处理 103
5.9 处理SIGCHLD信号 106
5.10 wait和waitpid函数 108
5.11 accept返回前连接中止 111
5.12 服务器进程终止 112
5.13 SIGPIPE信号 113
5.14 服务器主机崩溃 114
5.15 服务器主机崩溃后重启 115
5.16 服务器主机关机 116
5.17 TCP程序例子小结 116
5.18 数据格式 117
5.19 小结 120
习题 120
第6章 I/O复用:select和poll函数 122
6.1 概述 122
6.2 I/O模型 122
6.3 select函数 127
6.4 str_cli函数(修订版) 132
6.5 批量输入 133
6.6 shutdown函数 136
6.7 str_cli函数(再修订版) 137
6.8 TCP回射服务器程序(修订版) 138
6.9 pselect函数 142
6.10 poll函数 144
6.11 TCP回射服务器程序(再修订版) 146
6.12 小结 148
习题 149
第7章 套接字选项 150
7.1 概述 150
7.2 getsockopt和setsockopt函数 150
7.3 检查选项是否受支持并获取默认值 152
7.4 套接字状态 156
7.5 通用套接字选项 156
7.6 IPv4套接字选项 168
7.7 ICMPv6套接字选项 169
7.8 IPv6套接字选项 169
7.9 TCP套接字选项 171
7.10 SCTP套接字选项 173
7.11 fcntl函数 182
7.12 小结 184
习题 184
第8章 基本UDP套接字编程 186
8.1 概述 186
8.2 recvfrom和sendto函数 187
8.3 UDP回射服务器程序:main函数 187
8.4 UDP回射服务器程序:dg_echo函数 188
8.5 UDP回射客户程序:main函数 190
8.6 UDP回射客户程序:dg_cli函数 190
8.7 数据报的丢失 191
8.8 验证接收到的响应 191
8.9 服务器进程未运行 193
8.10 UDP程序例子小结 194
8.11 UDP的connect函数 196
8.12 dg_cli函数(修订版) 199
8.13 UDP缺乏流量控制 200
8.14 UDP中的外出接口的确定 203
8.15 使用select函数的TCP和UDP回射服务器程序 204
8.16 小结 206
习题 207
第9章 基本SCTP套接字编程 208
9.1 概述 208
9.2 接口模型 208
9.3 sctp_bindx函数 212
9.4 sctp_connectx函数 213
9.5 sctp_getpaddrs函数 213
9.6 sctp_freepaddrs函数 213
9.7 sctp_getladdrs函数 214
9.8 sctp_freeladdrs函数 214
9.9 sctp_sendmsg函数 214
9.10 sctp_recvmsg函数 215
9.11 sctp_opt_info函数 215
9.12 sctp_peeloff函数 216
9.13 shutdown函数 216
9.14 通知 217
9.15 小结 221
习题 222
第10章 SCTP客户/服务器程序例子 223
10.1 概述 223
10.2 SCTP一到多式流分回射服务器程序:main函数 223
10.3 SCTP一到多式流分回射客户程序:main函数 225
10.4 SCTP流分回射客户程序:sctpstr_cli函数 226
10.5 探究头端阻塞 228
10.6 控制流的数目 233
10.7 控制终结 233
10.8 小结 234
习题 235
第11章 名字与地址转换 236
11.1 概述 236
11.2 域名系统 236
11.3 gethostbyname函数 239
11.4 gethostbyaddr函数 242
11.5 getservbyname和getservbyport函数 242
11.6 getaddrinfo函数 245
11.7 gai_strerror函数 250
11.8 freeaddrinfo函数 251
11.9 getaddrinfo函数:IPv6 251
11.10 getaddrinfo函数:例子 253
11.11 host_serv函数 254
11.12 tcp_connect函数 254
11.13 tcp_listen函数 257
11.14 udp_client函数 261
11.15 udp_connect函数 263
11.16 udp_server函数 264
11.17 getnameinfo函数 266
11.18 可重入函数 267
11.19 gethostbyname_r和gethostbyaddr_r函数 270
11.20 作废的IPv6地址解析函数 271
11.21 其他网络相关信息 272
11.22 小结 273
习题 274
第三部分 高级套接字编程
第12章 IPv4与IPv6的互操作性 278
12.1 概述 278
12.2 IPv4客户与IPv6服务器 278
12.3 IPv6客户与IPv4服务器 281
12.4 IPv6地址测试宏 283
12.5 源代码可移植性 284
12.6 小结 284
习题 285
第13章 守护进程和inetd超级服务器 286
13.1 概述 286
13.2 syslogd守护进程 286
13.3 syslog函数 287
13.4 daemon_init函数 289
13.5 inetd守护进程 293
13.6 daemon_inetd函数 297
13.7 小结 299
习题 299
第14章 高级I/O函数 300
14.1 概述 300
14.2 套接字超时 300
14.3 recv和send函数 305
14.4 readv和writev函数 306
14.5 recvmsg和sendmsg函数 307
14.6 辅助数据 310
14.7 排队的数据量 313
14.8 套接字和标准I/O 313
14.9 高级轮询技术 316
14.10 T/TCP:事务目的TCP 320
14.11 小结 322
习题 323
第15章 Unix域协议 324
15.1 概述 324
15.2 Unix域套接字地址结构 324
15.3 socketpair函数 326
15.4 套接字函数 327
15.5 Unix域字节流客户/服务器程序 327
15.6 Unix域数据报客户/服务器程序 329
15.7 描述符传递 330
15.8 接收发送者的凭证 337
15.9 小结 340
习题 340
第16章 非阻塞式I/O 341
16.1 概述 341
16.2 非阻塞读和写:str_cli函数(修订版) 342
16.3 非阻塞connect 351
16.4 非阻塞connect:时间获取客户程序 352
16.5 非阻塞connect:Web客户程序 354
16.6 非阻塞accept 362
16.7 小结 363
习题 363
第17章 ioctl操作 365
17.1 概述 365
17.2 ioctl函数 365
17.3 套接字操作 366
17.4 文件操作 367
17.5 接口配置 367
17.6 get_ifi_info函数 369
17.7 接口操作 378
17.8 ARP高速缓存操作 378
17.9 路由表操作 380
17.10 小结 381
习题 381
第18章 路由套接字 382
18.1 概述 382
18.2 数据链路套接字地址结构 382
18.3 读和写 383
18.4 sysctl操作 390
18.5 get_ifi_info函数 394
18.6 接口名字和索引函数 397
18.7 小结 401
习题 401
第19章 密钥管理套接字 402
19.1 概述 402
19.2 读和写 403
19.3 倾泻安全关联数据库 404
19.4 创建静态安全关联 407
19.5 动态维护安全关联 412
19.6 小结 415
习题 416
第20章 广播
……

感悟与笔记

传输层TCP-UDP-SCTP

  • TCP:传输控制协议,面相连接,全双工字节流。流套接字。关心:确认、超时、重传等细节。
  • UDP:用户数据报协议,无连接协议。数据报套接字。不保证最终达到目的地。
  • ICMP:网际控制消息协议,处理路由器和主机之间流通的错误和控制消息。
  • ARP:地址解析协议,把IPv4地址映射成一个硬件地址。
  • RARP:反地址解析协议,把一个硬件地址映射成一个IPv4地址。
  • SCTP(内容略)
  • TIME_WAIT状态有两个存在的理由:
    • 可靠地实现TCP全双工连接的终止;
    • 允许老的重复分节在网络中消逝。
  • 端口号port:
    • 传输层协议都使用16位整数的端口号来区分不同的进程。
    • 0~1023(自控保留) | 1024~49151(已登记) | 49152~65535(动态私有)
  • 通讯对socket pair:
    • 每个TCP分节中都有16bit的端口号和32bit的IPv4地址。

会员免费下载

链接:https://pan.baidu.com/s/1BLofGZANMAw6-Qh7_iNXeQ

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

Unix通信技术其他

资源推荐

免费 图解数据结构:使用Java

CSS世界

C++ 程序设计语言:第4部分 标准库(原书第4版)

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

现代操作系统(原书第4版)

Copyright © 2021-2022 知识猫. All Rights Reserved.