内容介绍
这本书是UNIX网络编程的经典之作。该书全面深入地介绍了如何使用socket API进行网络编程。这本书不仅介绍了基本的编程内容,还涵盖了与套接字编程相关的高级主题对于客户/全面讨论了服务器程序的各种设计方法,并深入分析了流的设备驱动机制。这本书内容详尽,几乎每一章都提供精选练习和部分练习的答案是网络研究者和开发者的理想参考书。
作者介绍
W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高 级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。 Bill Fenner AT&T实验室主任研究员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,是RFC标准文档的批准人。 Andrew M. Rudoff Sun公司软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
目录
- Part 1. Introduction and TCP/IP / 简介和TCP/IP 1
- Chapter 1. Introduction / 简介 3
- 1.1 Introduction / 概述 3
- 1.2 A Simple Daytime Client / 一个简单的时间获取客户程序 6
- 1.3 Protocol Independence / 协议无关性 10
- 1.4 Error Handling: Wrapper Functions / 错误处理:包装函数 11
- 1.5 A Simple Daytime Server / 一个简单的时间获取服务器程序 13
- 1.6 Roadmap to Client/Server Examples in the Text / 本书中客户/服务器示例的路线图 16
- 1.7 OSI Model / OSI模型 18
- 1.8 BSD Networking History / BSD网络历史 20
- 1.9 Test Networks and Hosts / 测试用网络及主机 22
- 1.10 Unix Standards / Unix标准 25
- 1.11 64-Bit Architectures / 64位体系结构 28
- 1.12 Summary / 小结 29
- Chapter 2. The Transport Layer: TOP, UDP, and SCTP / 传输层:TCP、UDP和SCTP 31
- 2.1 Introduction / 概述 31
- 2.2 The Big Picture / 全景图 32
- 2.3 User Datagram Protocol (UDP) / 用户数据报协议 34
- 2.4 Transmission Control Protocol (TCP) / 传输控制协议 35
- 2.5 Stream Control Transmission Protocol (SCTP) / 流控制传输协议 36
- 2.6 TCP Connection Establishment and Termination / TCP连接的建立和终止 37
- 2.7 TIME_WAIT State / TIME_WAIT状态 43
- 2.8 SCTP Association Establishment and Termination / SCTP关联的建立和终止 44
- 2.9 Port Numbers / 端口号 50
- 2.10 TCP Port Numbers and Concurrent Servers / TCP端口号与并发服务器 52
- 2.11 Buffer Sizes and Limitations / 缓冲区大小及限制 55
- 2.12 Standard Internet Services / 标准因特网服务 61
- 2.13 Protocol Usage by Common Internet Applications / 常见因特网应用所用的协议 62
- 2.14 Summary / 小结 63
- Part 2. Elementary Sockets / 基本套接字 65
- Chanter 3. Sockets Introduction / 套接字简介 67
- 3.1 Introduction / 概述 67
- 3.2 Socket Address Structures / 套接字地址结构 67
- 3.3 Value-Result Arguments / 值-结果参数 74
- 3.4 Byte Ordering Functions / 字节排序函数 77
- 3.5 Byte Manipulation Functions / 字节操纵函数 80
- 3.6 inet_aton, inet_addr, and inet_ntoa Functions / inet_aton、inet_addr和inet_ntoa函数 82
- 3.7 inet_pton and inet_ntop Functions / inet_pton和inet_ntop函数 83
- 3.8 sock_ntop and Related Functions / sock_ntop和相关函数 86
- 3.9 readn, writen, and readline Functions / readn、writen和readline函数 88
- 3.10 Summary / 小结 92
- Chapter 4. Elementary TCP Sockets / 基本TCP套接字 95
- 4.1 Introduction / 概述 95
- 4.2 socket Function / socket函数 95
- 4.3 connect Function / connect函数 99
- 4.4 bind Function / bind函数 101
- 4.5 listen Function / listen函数 104
- 4.6 accept Function / accept函数 109
- 4.7 fork and exec Functions / fork和exec函数 111
- 4.8 Concurrent Servers / 并发服务器 114
- 4.9 close Function / close函数 117
- 4.10 getsockname and getpeername Functions / getsockname和getpeername函数 117
- 4.11 Summary / 小结 120
- Chapter 5. TCP Client/Server Example / TCP客户/服务器示例 121
- 5.1 Introduction / 概述 121
- 5.2 TCP Echo Server: main Function / TCP回送服务器程序:main函数 122
- 5.3 TCP Echo Server: str_echo Function / TCP回送服务器程序:str_echo函数 123
- 5.4 TCP Echo Client: main Function / TCP回送客户程序:main函数 124
- 5.5 TCP Echo Client: str_cli Function / TCP回送客户程序:str_cli函数 125
- 5.6 Normal Startup / 正常启动 126
- 5.7 Normal Termination / 正常终止 128
- 5.8 POSIX Signal Handling / POSIX信号处理 129
- 5.9 Handling SIGCHLD Signals / 处理SIGCHLD信号 132
- 5.10 wait and waitpid Functions / wait和waitpid函数 135
- 5.11 Connection Abort before accept Returns / accept返回前连接异常中止 139
- 5.12 Termination of Server Process / 服务器进程的终止 141
- 5.13 SIGPIPE Signal / SIGPIPE信号 142
- 5.14 Crashing of Server Host / 服务器主机崩溃 144
- 5.15 Crashing and Rebooting of Server Host / 服务器主机崩溃及重启 144
- 5.16 Shutdown of Server Host / 服务器主机关机 145
- 5.17 Summary of TCP Example / TCP示例小结 146
- 5.18 Data Format / 数据格式 147
- 5.19 Summary / 小结 151
- Chapter 6. I/O Multiplexing: The select and poll Functions / I/O多路复用:select和poll函数 153
- 6.1 Introduction / 概述 153
- 6.2 I/O Models / I/O模型 154
- 6.3 select Function / select函数 160
- 6.4 str_cli Function (Revisited) / 再访str_cli函数 167
- 6.5 Batch Input and Buffering / 批量输入和缓冲 169
- 6.6 shutdown Function / shutdown函数 172
- 6.7 str_cli Function (Revisited Again) / 三顾str_cli函数 173
- 6.8 TCP Echo Server (Revisited) / 再访TCP回送服务器程序 175
- 6.9 pselect Function / pselect函数 181
- 6.10 poll Function / poll函数 182
- 6.11 TCP Echo Server (Revisited Again) / 三顾TCP回送服务器程序 185
- 6.12 Summary / 小结 188
- Chapter 7. Socket Options / 套接字选项 191
- 7.1 Introduction / 概述 191
- 7.2 getsockopt and setsockopt Functions / getsockopt和setsockopt函数 192
- 7.3 Checking if an Option Is Supported and Obtaining the Default / 检查选项是否被支持并获取默认值 194
- 7.4 Socket States / 套接字状态 198
- 7.5 Generic Socket Options / 通用套接字选项 198
- 7.6 IPv4 Socket Options / IPv4套接字选项 214
- 7.7 ICMPv6 Socket Option / ICMPv6套接字选项 216
- 7.8 IPv6 Socket Options / IPv6套接字选项 216
- 7.9 TCP Socket Options / TCP套接字选项 219
- 7.10 SCTP Socket Options / SCTP套接字选项 222
- 7.11 fcntl Function / fcntl函数 233
- 7.12 Summary / 小结 236
- Chapter 8. Elementary UDP Sockets / 基本UDP套接字 239
- 8.1 Introduction / 概述 239
- 8.2 recvfrom and sendto Functions / recvfrom和sendto函数 240
- 8.3 UDP Echo Server: main Function / UDP回送服务器程序:main函数 241
- 8.4 UDP Echo Server: dg_echo Function / UDP回送服务器程序:dg_echo函数 242
- 8.5 UDP Echo Client: main Function / UDP回送客户程序:main函数 244
- 8.6 UDP Echo Client: dg_cli Function / UDP回送客户程序:dg_cli函数 245
- 8.7 Lost Datagrams / 数据报的丢失 245
- 8.8 Verifying Received Response / 验证接收到的响应 246
- 8.9 Server Not Running / 服务器程序未运行 248
- 8.10 Summary of UDP Example / UDP示例小结 250
- 8.11 connect Function with UDP / UDP的connect函数 252
- 8.12 dg_cli Function (Revisited) / 再论dg_cli函数 256
- 8.13 Lack of Flow Control with UDP / UDP缺乏流量控制 257
- 8.14 Determining Outgoing Interface with UDP / UDP中的外出接口的确定 261
- 8.15 TCP and UDP Echo Server Using select / 使用select函数的TCP和UDP回送服务器程序 262
- 8.16 Summary / 小结 264
- Chapter 9. Elementary SCTP Sockets / 基本SCTP套接字 267
- 9.1 Introduction / 概述 267
- 9.2 Interface Models / 接口模型 268
- 9.3 sctp_bindx Function / sctp_bindx函数 272
- 9.4 sctp_connectx Function / sctp_connectx函数 274
- 9.5 sctp_getpaddrs Function / sctp_getpaddrs函数 275
- 9.6 sctp_freepaddrs Function / sctp_freepaddrs函数 275
- 9.7 sctp_getladdrs Function / sctp_getladdrs函数 275
- 9.8 sctp_freeladdrs Function / sctp_freeladdrs函数 276
- 9.9 sctp_sendmsg Function / sctp_sendmsg函数 276
- 9.10 sctp_recvmsg Function / sctp_recvmsg函数 277
- 9.11 sctp_opt_info Function / sctp_opt_info函数 278
- 9.12 sctp_peeloff Function / sctp_peeloff函数 278
- 9.13 shutdown Function / shutdown函数 278
- 9.14 Notifications / 通知 280
- 9.15 Summary / 小结 286
- Chapter 10. SCTP Client/Server Example / SCTP客户/服务器示例 287
- 10.1 Introduction / 概述 287
- 10.2 SCTP One-to-Many-Style Streaming Echo Server: main Function / SCTP一到多式流分回送服务器程序:main函数 288
- 10.3 SCTP One-to-Many-Style Streaming Echo Client: main Function / SCTP一到多式流分回送客户程序:main函数 290
- 10.4 SCTP Streaming Echo Client: str_cli Function / SCTP流分回送客户程序:str_cli函数 292
- 10.5 Exploring Head-of-Line Blocking / 探究头端阻塞 293
- 10.6 Controlling the Number of Streams / 控制流的数目 299
- 10.7 Controlling Termination / 控制终止 300
- 10.8 Summary / 小结 301
- Chapter 11. Name and Address Conversions / 名字与地址转换 303
- 11.1 Introduction / 概述 303
- 11.2 Domain Name System (DNS) / 域名系统 303
- 11.3 gethostbyname Function / gethostbyname函数 307
- 11.4 gethostbyaddr Function / gethostbyaddr函数 310
- 11.5 getservbyname and getservbyport Functions / getservbyname和getservbyport函数 311
- 11.6 getaddrinfo Function / getaddrinfo函数 315
- 11.7 gai_strerror Function / gai_strerror函数 320
- 11.8 freeaddrinfo Function / freeaddrinfo函数 321
- 11.9 getaddrinfo Function: IPv6 / getaddrinfo函数:IPv6 322
- 11.10 getaddrinfo Function: Examples / getaddrinfo函数:示例 324
- 11.11 host_serv Function / host_serv函数 325
- 11.12 tcp_connect Function / tcp_connect函数 326
- 11.13 tcp_listen Function / tcp_listen函数 330
- 11.14 udp_client Function / udp_client函数 334
- 11.15 udp_connect Function / udp_connect函数 337
- 11.16 udp_server Function / udp_server函数 338
- 11.17 getnameinfo Function / getnameinfo函数 340
- 11.18 Re-entrant Functions / 可重入函数 341
- 11.19 gethostbyname_r and gethostbyaddr_r Functions / gethostbyname_r和gethostbyaddr_r函数 344
- 11.20 Obsolete IPv6 Address Lookup Functions / 废弃的IPv6地址解析函数 346
- 11.21 Other Networking Information / 其他联网信息 348
- 11.22 Summary / 小结 349
- Part 3. Advanced Sockets / 高 级套接字 351
- Chapter 12. IPv4 and IPv6 Interoperability / IPv4与IPv6的互操作性 353
- 12.1 Introduction / 概述 353
- 12.2 IPv4 Client, IPv6 Server / IPv4客户与IPv6服务器 354
- 12.3 IPv6 Client, IPv4 Server / IPv6客户与IPv4服务器 357
- 12.4 IPv6 Address-Testing Macros / IPv6地址测试宏 360
- 12.5 Source Code Portability / 源代码可移植性 361
- 12.6 Summary / 小结 362
- Chapter 13. Daemon Processes and the inetd Superserver / 守护进程和inetd超级服务器程序 363
- 13.1 Introduction / 概述 363
- 13.2 syslogd Daemon / syslogd守护进程 364
- 13.3 syslog Function / syslog函数 365
- 13.4 daemon_init Function / daemon_init函数 367
- 13.5 inetd Daemon / inetd守护进程 371
- 13.6 daemon_inetd Function / daemon_inetd函数 377
- 13.7 Summary / 小结 379
- Chapter 14. Advanced I/O Functions / 高 级I/O函数 381
- 14.1 Introduction / 概述 381
- 14.2 Socket Timeouts / 套接字超时 381
- 14.3 recv and send Functions / recv和send函数 387
- 14.4 readv and writev Functions / readv和writev函数 389
- 14.5 recvmsg and sendmsg Functions / recvmsg和sendmsg函数 390
- 14.6 Ancillary Data / 辅助数据 395
- 14.7 How Much Data Is Queued / 排队的数据量 398
- 14.8 Sockets and Standard I/O / 套接字和标准I/O 399
- 14.9 Advanced Polling / 高 级轮询技术 402
- 14.10 Summary / 小结 408
- Chapter 15. Unix Domain Protocols / Unix域协议 411
- 15.1 Introduction / 概述 411
- 15.2 Unix Domain Socket Address Structure / Unix域套接字地址结构 412
- 15.3 socketpair Function / socketpair函数 414
- 15.4 Socket Functions / 套接字函数 415
- 15.5 Unix Domain Stream Client/Server / Unix域流客户/服务器 416
- 15.6 Unix Domain Datagram Client/Server / Unix域数据报客户/服务器 418
- 15.7 Passing De*ors / 描述符传递 420
- 15.8 Receiving Sender Credentials / 接收发送者的凭证 429
- 15.9 Summary / 小结 432
- Chapter 16. Nonblocking I/O / 非阻塞I/O 435
- 16.1 Introduction / 概述 435
- 16.2 Nonblocking Reads and Writes: str_cli Function (Revisited) / 非阻塞读和写:再论str_cli函数 437
- 16.3 Nonblocking connect / 非阻塞connect 448
- 16.4 Nonblocking connect: Daytime Client / 非阻塞connect:时间获取客户程序 449
- 16.5 Nonblocking connect: Web Client / 非阻塞connect:Web客户程序 452
- 16.6 Nonblocking accept / 非阻塞accept 461
- 16.7 Summary / 小结 463
- Chapter 17. ioctl Operations / ioctl操作 465
- 17.1 Introduction / 概述 465
- 17.2 ioctl Function / ioctl函数 466
- 17.3 Socket Operations / 套接字操作 466
- 17.4 File Operations / 文件操作 468
- 17.5 Interface Configuration / 接口配置 468
- 17.6 get_ifi_info Function / get_ifi_info函数 469
- 17.7 Interface Operations / 接口操作 480
- 17.8 ARP Cache Operations / ARP高速缓存操作 481
- 17.9 Routing Table Operations / 路由表操作 483
- 17.10 Summary / 小结 484
- Chapter 18. Routing Sockets / 路由套接字 485
- 18.1 Introduction / 概述 485
- 18.2 Datalink Socket Address Structure / 数据链路套接字地址结构 486
- 18.3 Reading and Writing / 读和写 487
- 18.4 sysctl Operations / sysctl操作 495
- 18.5 get_ifi_info Function (Revisited) / get_ifi_info函数 500
- 18.6 Interface Name and Index Functions / 接口名字和索引函数 504
- 18.7 Summary / 小结 508
- Chapter 19. Key Management Sockets / 密钥管理套接字 511
- 19.1 Introduction / 概述 511
- 19.2 Reading and Writing / 读和写 512
- 19.3 Dumping the Security Association Database (SADB) / 安全关联数据库的转储 514
- 19.4 Creating a Static Security Association (SA) / 创建静态安全关联 517
- 19.5 Dynamically Maintaining SAs / 动态维护安全关联 524
- 19.6 Summary / 小结 528
- Chapter 20. Broadcasting / 广播 529
- 20.1 Introduction / 概述 529
- 20.2 Broadcast Addresses / 广播地址 531
- 20.3 Unicast versus Broadcast / 单播和广播的比较 532
- 20.4 dg_cli Function Using Broadcasting / 使用广播的dg_cli函数 535
- 20.5 Race Conditions / 竞争状态 538
- 20.6 Summary / 小结 547
- Chapter 21. Multicasting / 多播 549
- 21.1 Introduction / 概述 549
- 21.2 Multicast Addresses / 多播地址 549
- 21.3 Multicasting versus Broadcasting on a LAN / 局域网上多播和广播的比较 553
- 21.4 Multicasting on a WAN / 广域网上的多播 556
- 21.5 Source-Specific Multicast / 源特定多播 558
- 21.6 Multicast Socket Options / 多播套接字选项 559
- 21.7 mcast_join and Related Functions / mcast_join和相关函数 565
- 21.8 dg_cli Function Using Multicasting / 使用多播的dg_cli函数 570
- 21.9 Receiving IP Multicast Infrastructure Session Announcements / 接收IP多播基础设施会话声明 571
- 21.10 Sending and Receiving / 发送和接收 575
- 21.11 Simple Network Time Protocol (SNTP) / 简单网络时间协议 579
- 21.12 Summary / 小结 584
- Chapter 22. Advanced UDP Sockets / 高 级UDP套接字 587
- 22.1 Introduction / 概述 587
- 22.2 Receiving Flags, Destination IP Address, and Interface Index / 接收标志、目的IP地址和接口索引 588
- 22.3 Datagram Truncation / 数据报截断 594
- 22.4 When to Use UDP Instead of TCP / 何时用UDP代替TCP 594
- 22.5 Adding Reliability to a UDP Application / 给UDP应用增加可靠性 597
- 22.6 Binding Interface Addresses / 绑定接口地址 608
- 22.7 Concurrent UDP Servers / 并发UDP服务器 612
- 22.8 IPv6 Packet Information / IPv6分组信息 615
- 22.9 IPv6 Path MTU Control / IPv6路径MTU控制 618
- 22.10 Summary / 小结 620
- Chapter 23. Advanced SCTP Sockets / 高 级SCTP套接字 621
- 23.1 Introduction / 概述 621
- 23.2 An Autoclosing One-to-Many-Style Server / 自动关闭的一到多式服务器程序 621
- 23.3 Partial Delivery / 部分递送 622
- 23.4 Notifications / 通知 625
- 23.5 Unordered Data / 无序的数据 629
- 23.6 Binding a Subset of Addresses / 绑定地址子集 630
- 23.7 Determining Peer and Local Address Information / 确定对端和本端地址信息 631
- 23.8 Finding an Association ID Given an IP Address / 给定IP地址找出关联ID 635
- 23.9 Heartbeating and Address Failure / 心搏和地址不可达 636
- 23.10 Peeling Off an Association / 关联剥离 637
- 23.11 Controlling Timing / 定时控制 639
- 23.12 When to Use SCTP Instead of TCP / 何时用SCTP代替TCP 641
- 23.13 Summary / 小结 643
- Chapter 24. Out-of-Band Data / 带外数据 645
- 24.1 Introduction / 概述 645
- 24.2 TCP Out-of-Band Data / TCP带外数据 645
- 24.3 sockatmark Function / sockatmark函数 654
- 24.4 TCP Out-of-Band Data Recap / TCP带外数据小结 661
- 24.5 Summary / 小结 662
- Chapter 25. Signal-Driven I/O / 信号驱动I/O 663
- 25.1 Introduction / 概述 663
- 25.2 Signal-Driven I/O for Sockets / 套接字的信号驱动I/O 664
- 25.3 UDP Echo Server Using SIGIO / 使用SIGIO的UDP回送服务器程序 666
- 25.4 Summary / 小结 672
- Chapter 26. Threads / 线程 675
- 26.1 Introduction / 概述 675
- 26.2 Basic Thread Functions: Creation and Termination / 基本线程函数:创建和终止 676
- 26.3 str_cli Function Using Threads / 使用线程的str_cli函数 679
- 26.4 TCP Echo Server Using Threads / 使用线程的TCP回送服务器程序 681
- 26.5 Thread-Specific Data / 线程特定数据 686
- 26.6 Web Client and Simultaneous Connections (Continued) / Web客户与同时连接(续) 694
- 26.7 Mutexes: Mutual Exclusion / 互斥锁 697
- 26.8 Condition Variables / 条件变量 701
- 26.9 Web Client and Simultaneous Connections (Continued) / Web客户与同时连接(续) 705
- 26.10 Summary / 小结 707
- Chapter 27. IP Options / IP选项 709
- 27.1 Introduction / 概述 709
- 27.2 IPv4 Options / IPv4选项 709
- 27.3 IPv4 Source Route Options / IP源路径选项 711
- 27.4 IPv6 Extension Headers / IPv6扩展首部 719
- 27.5 IPv6 Hop-by-Hop Options and Destination Options / IPv6步跳选项和目的选项 719
- 27.6 IPv6 Routing Header / IPv6路由首部 725
- 27.7 IPv6 Sticky Options / IPv6粘附选项 731
- 27.8 Historical IPv6 Advanced API / 历史性IPv6高 级API 732
- 27.9 Summary / 小结 733
- Chapter 28. Raw Sockets / 原始套接字 735
- 28.1 Introduction / 概述 735
- 28.2 Raw Socket Creation / 原始套接字创建 736
- 28.3 Raw Socket Output / 原始套接字输出 737
- 28.4 Raw Socket Input / 原始套接字输入 739
- 28.5 ping Program / ping程序 741
- 28.6 traceroute Program / traceroute程序 755
- 28.7 An ICMP Message Daemon / 一个ICMP消息守护进程 769
- 28.8 Summary / 小结 786
- Chapter 29. Datalink Access / 数据链路访问 787
- 29.1 Introduction / 概述 787
- 29.2 BSD Packet Filter (BPF) / BSD分组过滤器 788
- 29.3 Datalink Provider Interface (DLPI) / 数据链路提供者接口 790
- 29.4 Linux: SOCK_PACKET and PF_PACKET / Linux:SOCK_PACKET和PF_PACKET 791
- 29.5 libpcap: Packet Capture Library / libpcap:分组捕获函数库 792
- 29.6 libnet: Packet Creation and Injection Library / libnet:分组构造与注入函数库 793
- 29.7 Examining the UDP Checksum Field / 检查UDP的校验和字段 793
- 29.8 Summary / 小结 815
- Chapter 30. Client/Server Design Alternatives / 多种客户/服务器设计方式 817
- 30.1 Introduction / 概述 817
- 30.2 TCP Client Alternatives / 各种TCP客户程序设计方式 819
- 30.3 TCP Test Client / TCP测试用客户程序 820
- 30.4 TCP Iterative Server / TCP迭代服务器程序 821
- 30.5 TCP Concurrent Server, One Child per Client / TCP并发服务器程序,每个客户一个子进程 822
- 30.6 TCP Preforked Server, No Locking Around accept / TCP预先派生子进程服务器程序,accept无上锁保护 826
- 30.7 TCP Preforked Server, File Locking Around accept / TCP预先派生子进程服务器程序,accept使用文件上锁保护 832
- 30.8 TCP Preforked Server, Thread Locking Around accept / TCP预先派生子进程服务器程序,accept使用线程上锁保护 835
- 30.9 TCP Preforked Server, De*or Passing / TCP预先派生子进程服务器程序,传递描述符 836
- 30.10 TCP Concurrent Server, One Thread per Client / TCP并发服务器程序,每个客户一个线程 842
- 30.11 TCP Prethreaded Server, per-Thread accept / TCP预先创建线程服务器程序,每个线程各自accept 844
- 30.12 TCP Prethreaded Server, Main Thread accept / TCP预先创建线程服务器程序,主线程统一accept 846
- 30.13 Summary / 小结 849
- Chapter 31. STREAMS / 851
- 31.1 Introduction / 概述 851
- 31.2 Overview / 概貌 851
- 31.3 getmsg and putmsg Functions / getmsg和putmsg函数 856
- 31.4 getpmsg and putpmsg Functions / getpmsg和putpmsg函数 857
- 31.5 ioctl Function / ioctl函数 857
- 31.6 Transport Provider Interface (TPI) / 传输提供者接口 858
- 31.7 Summary / 小结 868
- Appendix A. IPv4, IPv6, ICMPv4, and ICMPv6 /
- IPv4、IPv6、ICMPv4和ICMPv6 869
- A.1 Introduction / 概述 869
- A.2 IPv4 Header / IPv4首部 869
- A.3 IPv6 Header / IPv6首部 871
- A.4 IPv4 Addresses / IPv4地址 874
- A.5 IPv6 Addresses / IPv6地址 877
- A.6 Internet Control Message Protocols (ICMPv4 and ICMPv6) / 因特网控制消息协议(ICMPv4和ICMPv6) 882
- Appendix B. Virtual Networks / 虚拟网络 885
- B.1 Introduction / 概述 885
- B.2 The MBone 885
- B.3 The 6bone 887
- B.4 IPv6 Transition: 6to4 / IPv6过渡:6to4 889
- Appendix C. Debugging Techniques / 调试技术 891
- C.1 System Call Tracing / 系统调用跟踪 891
- C.2 Standard Internet Services / 标准因特网服务 893
- C.3 sock Program / sock程序 893
- C.4 Small Test Programs / 小测试程序 896
- C.5 tcpdump Program / tcpdump程序 896
- C.6 netstat Program / netstat程序 896
- C.7 lsof Program / lsof程序 897
- Appendix D. Miscellaneous Source Code / 其他源代码 899
- D.1 unp.h Header / unp.h头文件 899
- D.2 config.h Header / config.h头文件 904
- D.3 Standard Error Functions / 标准错误处理函数 910
- Appendix E. Solutions to Selected Exercises / 精选习题答案 913
- Bibliography / 参考文献 947