part 1 introduction and tcp/ip .1
         简介和tcp/ip
         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 18
         osi模型
         1.8 bsd networking history 20
         bsd网络历史
         .1.9 test networks and hosts 22
         测试用网络及主机
         1.10 unix standards 25
         unix标准
         1.11 64-bit architectures 28
         64位体系结构
         1.12 summary 29
         小结
         chapter 2 the transport layer: top,udp, and sctp 31
         传输层:tcp、udp和sctp
         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 andtermination 37
         tcp连接的建立和终止
         2.7 time_wait state 43
         time_wait状态
         2.8 sctp association establishment andtermination 44
         sctp关联的建立和终止
         2.9 port numbers 50
         端口号
         2.10 tcp port numbers and concurrentservers 52
         tcp端口号与并发服务器
         2.11 buffer sizes and limitations 55
         缓冲区大小及限制
         2.12 standard internet services 61
         标准因特网服务
         2.13 protocol usage by common internetapplications 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 82
         inet_aton、inet_addr和inet_ntoa函数
         3.7 inet_pton and inet_ntop functions 83
         inet_pton和inet_ntop函数
         3.8 sock_ntop and related functions 86
         sock_ntop和相关函数
         3.9 readn, writen, and readline functions 88
         readn、writen和readline函数
         3.10 summary 92
         小结
         chapter 4 elementary tcp sockets 95
         基本tcp套接字
         4.1 introduction 95
         概述
         4.2 socket function 95
         socket函数
         4.3 connect function 99
         connect函数
         4.4 bind function 101
         bind函数
         4.5 listen function 104
         listen函数
         4.6 accept function 109
         accept函数
         4.7 fork and exec functions 111
         fork和exec函数
         4.8 concurrent servers 114
         并发服务器
         4.9 close function 117
         close函数
         4.10 getsockname and getpeernamefunctions 117
         getsockname和getpeername函数
         4.11 summary 120
         小结
         chapter 5 tcp client/server example 121
         tcp客户/服务器示例
         5.1 introduction 121
         概述
         5.2 tcp echo server: main function 122
         tcp回送服务器程序:main函数
         5.3 tcp echo server: str_echo function 123
         tcp回送服务器程序:str_echo函数
         5.4 tcp echo client: main function 124
         tcp回送客户程序:main函数
         5.5 tcp echo client: str_cli function 125
         tcp回送客户程序:str_cli函数
         5.6 normal startup 126
         正常启动
         5.7 normal termination 128
         正常终止
         5.8 posix signal handling 129
         posix信号处理
         5.9 handling sigchld signals 132
         处理sigchld信号
         5.10 wait and waitpid functions 135
         wait和waitpid函数
         5.11 connection abort before acceptreturns 139
         accept返回前连接异常中止
         5.12 termination of server process 141
         服务器进程的终止
         5.13 sigpipe signal 142
         sigpipe信号
         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 146
         tcp示例小结
         5.18 data format 147
         数据格式
         5.19 summary 151
         小结
         chapter 6 i/o multiplexing: the select and poll functions 153
         i/o多路复用:select和poll函数
         6.1 introduction 153
         概述
         6.2 i/o models 154
         i/o模型
         6.3 select function 160
         select函数
         6.4 str_cli function (revisited) 167
         再访str_cli函数
         6.5 batch input and buffering 169
         批量输入和缓冲
         6.6 shutdown function 172
         shutdown函数
         6.7 str_cli function (revisited again) 173
         三顾str_cli函数
         6.8 tcp echo server (revisited) 175
         再访tcp回送服务器程序
         6.9 pselect function 181
         pselect函数
         6.10 poll function 182
         poll函数
         6.11 tcp echo server (revisited again) 185
         三顾tcp回送服务器程序
         6.12 summary 188
         小结
         chapter 7 socket options 191
         套接字选项
         7.1 introduction 191
         概述
         7.2 getsockopt and setsockopt functions 192
         getsockopt和setsockopt函数
         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 214
         ipv4套接字选项
         7.7 icmpv6 socket option 216
         icmpv6套接字选项
         7.8 ipv6 socket options 216
         ipv6套接字选项
         7.9 tcp socket options 219
         tcp套接字选项
         7.10 sctp socket options 222
         sctp套接字选项
         7.11 fcntl function 233
         fcntl函数
         7.12 summary 236
         小结
         chapter 8 elementary udp sockets 239
         基本udp套接字
         8.1 introduction 239
         概述
         8.2 recvfrom and sendto functions 240
         recvfrom和sendto函数
         8.3 udp echo server: main function 241
         udp回送服务器程序:main函数
         8.4 udp echo server: dg_echo function 242
         udp回送服务器程序:dg_echo函数
         8.5 udp echo client: main function 244
         udp回送客户程序:main函数
         8.6 udp echo client: dg_cli function 245
         udp回送客户程序:dg_cli函数
         8.7 lost datagrams 245
         数据报的丢失
         8.8 verifying received response 246
         验证接收到的响应
         8.9 server not running 248
         服务器程序未运行
         8.10 summary of udp example 250
         udp示例小结
         8.11 connect function with udp 252
         udp的connect函数
         8.12 dg_cli function (revisited) 256
         再论dg_cli函数
         8.13 lack of flow control with udp 257
         udp缺乏流量控制
         8.14 determining outgoing interface with udp 261
         udp中的外出接口的确定
         8.15 tcp and udp echo server using select 262
         使用select函数的tcp和udp回送服务器程序
         8.16 summary 264
         小结
         chapter 9 elementary sctp sockets 267
         基本sctp套接字
         9.1 introduction 267
         概述
         9.2 interface models 268
         接口模型
         9.3 sctp_bindx function 272
         sctp_bindx函数
         9.4 sctp_connectx function 274
         sctp_connectx函数
         9.5 sctp_getpaddrs function 275
         sctp_getpaddrs函数
         9.6 sctp_freepaddrs function 275
         sctp_freepaddrs函数
         9.7 sctp_getladdrs function 275
         sctp_getladdrs函数
         9.8 sctp_freeladdrs function 276
         sctp_freeladdrs函数
         9.9 sctp_sendmsg function 276
         sctp_sendmsg函数
         9.10 sctp_recvmsg function 277
         sctp_recvmsg函数
         9.11 sctp_opt_info function 278
         sctp_opt_info函数
         9.12 sctp_peeloff function 278
         sctp_peeloff函数
         9.13 shutdown function 278
         shutdown函数
         9.14 notifications 280
         通知
         9.15 summary 286
         小结
         chapter 10 sctp client/server example 287
         sctp客户/服务器示例
         10.1 introduction 287
         概述
         10.2 sctp one-to-many-style streaming echo server: main function 288
         sctp一到多式流分回送服务器程序:main函数
         10.3 sctp one-to-many-style streaming echo client: main function 290
         sctp一到多式流分回送客户程序:main函数
         10.4 sctp streaming echo client: str_cli function 292
         sctp流分回送客户程序:str_cli函数
         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 307
         gethostbyname函数
         11.4 gethostbyaddr function 310
         gethostbyaddr函数
         11.5 getservbyname and getservbyport functions 311
         getservbyname和getservbyport函数
         11.6 getaddrinfo function 315
         getaddrinfo函数
         11.7 gai_strerror function 320
         gai_strerror函数
         11.8 freeaddrinfo function 321
         freeaddrinfo函数
         11.9 getaddrinfo function: ipv6 322
         getaddrinfo函数:ipv6
         11.10 getaddrinfo function: examples 324
         getaddrinfo函数:示例
         11.11 host_serv function 325
         host_serv函数
         11.12 tcp_connect function 326
         tcp_connect函数
         11.13 tcp_listen function 330
         tcp_listen函数
         11.14 udp_client function 334
         udp_client函数
         11.15 udp_connect function 337
         udp_connect函数
         11.16 udp_server function 338
         udp_server函数
         11.17 getnameinfo function 340
         getnameinfo函数
         11.18 re-entrant functions 341
         可重入函数
         11.19 gethostbyname_r and gethostbyaddr_r functions 344
         gethostbyname_r和gethostbyaddr_r函数
         11.20 obsolete ipv6 address lookup functions 346
         废弃的ipv6地址解析函数
         11.21 other networking information 348
         其他联网信息
         11.22 summary 349
         小结
         part 3 advanced sockets 351
         高级套接字
         chapter 12 ipv4 and ipv6 interoperability 353
         ipv4与ipv6的互操作性
         12.1 introduction 353
         概述
         12.2 ipv4 client, ipv6 server .. 354
         ipv4客户与ipv6服务器
         12.3 ipv6 client, ipv4 server 357
         ipv6客户与ipv4服务器
         12.4 ipv6 address-testing macros 360
         ipv6地址测试宏
         12.5 source code portability 361
         源代码可移植性
         12.6 summary 362
         小结
         chapter 13 daemon processes and the inetd superserver 363
         守护进程和inetd超级服务器程序
         13.1 introduction 363
         概述
         13.2 syslogd daemon 364
         syslogd守护进程
         13.3 syslog function 365
         syslog函数
         13.4 daemon_init function 367
         daemon_init函数
         13.5 inetd daemon 371
         inetd守护进程
         13.6 daemon_inetd function 377
         daemon_inetd函数
         13.7 summary 379
         小结
         chapter 14 advanced i/o functions 381
         高级i/o函数
         14.1 introduction 381
         概述
         14.2 socket timeouts 381
         套接字超时
         14.3 recv and send functions 387
         recv和send函数
         14.4 readv and writev functions 389
         readv和writev函数
         14.5 recvmsg and sendmsg functions 390
         recvmsg和sendmsg函数
         14.6 ancillary data 395
         辅助数据
         14.7 how much data is queued? 398
         排队的数据量
         14.8 sockets and standard i/o 399
         套接字和标准i/o
         14.9 advanced polling 402
         高级轮询技术
         14.10 summary 408
         小结
         chapter 15 unix domain protocols 411
         unix域协议
         15.1 introduction 411
         概述
         15.2 unix domain socket address structure 412
         unix域套接字地址结构
         15.3 socketpair function 414
         socketpair函数
         15.4 socket functions 415
         套接字函数
         15.5 unix domain stream client/server 416
         unix域流客户/服务器
         15.6 unix domain datagram client/server 418
         unix域数据报客户/服务器
         15.7 passing descriptors 420
         描述符传递
         15.8 receiving sender credentials 429
         接收发送者的凭证
         15.9 summary 432
         小结
         chapter 16 nonblocking i/o 435
         非阻塞i/o
         16.1 introduction 435
         概述
         16.2 nonblocking reads and writes: str_cli function (revisited) 437
         非阻塞读和写:再论str_cli函数
         16.3 nonblocking connect 448
         非阻塞connect
         16.4 nonblocking connect: daytime client 449
         非阻塞connect:时间获取客户程序
         16.5 nonblocking connect: web client 452
         非阻塞connect:web客户程序
         16.6 nonblocking accept 461
         非阻塞accept
         16.7 summary 463
         小结
         chapter 17 ioctl operations 465
         ioctl操作
         17.1 introduction 465
         概述
         17.2 ioctl function 466
         ioctl函数
         17.3 socket operations 466
         套接字操作
         17.4 file operations 468
         文件操作
         17.5 interface configuration 468
         接口配置
         17.6 get_ifi_info function 469
         get_ifi_info函数
         17.7 interface operations 480
         接口操作
         17.8 arp cache operations 481
         arp高速缓存操作
         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 495
         sysctl操作
         18.5 get_ifi_info function (revisited) 500
         get_ifi_info函数
         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 535
         使用广播的dg_cli函数
         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 565
         mcast_join和相关函数
         21.8 dg_cli function using multicasting 570
         使用多播的dg_cli函数
         21.9 receiving ip multicast infrastructure session announcements 571
         接收ip多播基础设施会话声明
         21.10 sending and receiving 575
         发送和接收
         21.11 simple network time protocol (sntp) 579
         简单网络时间协议
         21.12 summary 584
         小结
         chapter 22 advanced udp sockets 587
         高级udp套接字
         22.1 introduction 587
         概述
         22.2 receiving flags, destination ip address, and interface index 588
         接收标志、目的ip地址和接口索引
         22.3 datagram truncation 594
         数据报截断
         22.4 when to use udp instead of tcp 594
         何时用udp代替tcp
         22.5 adding reliability to a udp application 597
         给udp应用增加可靠性
         22.6 binding interface addresses 608
         绑定接口地址
         22.7 concurrent udp servers 612
         并发udp服务器
         22.8 ipv6 packet information 615
         ipv6分组信息
         22.9 ipv6 path mtu control 618
         ipv6路径mtu控制
         22.10 summary 620
         小结
         chapter 23 advanced sctp sockets 621
         高级sctp套接字
         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 635
         给定ip地址找出关联id
         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 641
         何时用sctp代替tcp
         23.13 summary 643
         小结
         chapter 24 out-of-band data 645
         带外数据
         24.1 introduction 645
         概述
         24.2 tcp out-of-band data 645
         tcp带外数据
         24.3 sockatmark function 654
         sockatmark函数
         24.4 tcp out-of-band data recap 661
         tcp带外数据小结
         24.5 summary 662
         小结
         chapter 25 signal-driven i/o 663
         信号驱动i/o
         25.1 introduction 663
         概述
         25.2 signal-driven i/o for sockets 664
         套接字的信号驱动i/o
         25.3 udp echo server using sigio 666
         使用sigio的udp回送服务器程序
         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 679
         使用线程的str_cli函数
         26.4 tcp echo server using threads 681
         使用线程的tcp回送服务器程序
         26.5 thread-specific data 686
         线程特定数据
         26.6 web client and simultaneous connections (continued) 694
         web客户与同时连接(续)
         26.7 mutexes: mutual exclusion 697
         互斥锁
         26.8 condition variables 701
         条件变量
         26.9 web client and simultaneous connections (continued) 705
         web客户与同时连接(续)
         26.10 summary 707
         小结
         chapter 27 ip options 709
         ip选项
         27.1 introduction 709
         概述
         27.2 ipv4 options 709
         ipv4选项
         27.3 ipv4 source route options 711
         ip源路径选项
         27.4 ipv6 extension headers 719
         ipv6扩展首部
         27.5 ipv6 hop-by-hop options and destination options 719
         ipv6步跳选项和目的选项
         27.6 ipv6 routing header 725
         ipv6路由首部
         27.7 ipv6 sticky options 731
         ipv6粘附选项
         27.8 historical ipv6 advanced api 732
         历史性ipv6高级api
         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 741
         ping程序
         28.6 traceroute program 755
         traceroute程序
         28.7 an icmp message daemon 769
         一个icmp消息守护进程
         28.8 summary 786
         小结
         chapter 29 datalink access 787
         数据链路访问
         29.1 introduction 787
         概述
         29.2 bsd packet filter (bpf) 788
         bsd分组过滤器
         29.3 datalink provider interface (dlpi) 790
         数据链路提供者接口
         29.4 linux: sock_packet and pf_packet 791
         linux:sock_packet和pf_packet
         29.5 libpcap: packet capture library 792
         libpcap:分组捕获函数库
         29.6 libnet: packet creation and injection library 793
         libnet:分组构造与注入函数库
         29.7 examining the udp checksum
         field 793
         检查udp的校验和字段
         29.8 summary 815
         小结
         chapter 30 client/server design alternatives 817
         多种客户/服务器设计方式
         30.1 introduction 817
         概述
         30.2 tcp client alternatives 819
         各种tcp客户程序设计方式
         30.3 tcp test client 820
         tcp测试用客户程序
         30.4 tcp iterative server 821
         tcp迭代服务器程序
         30.5 tcp concurrent server, one child per client 822
         tcp并发服务器程序,每个客户一个子进程
         30.6 tcp preforked server, no locking around accept 826
         tcp预先派生子进程服务器程序,accept无上锁保护
         30.7 tcp preforked server, file locking around accept 832
         tcp预先派生子进程服务器程序,accept使用文件上锁保护
         30.8 tcp preforked server, thread locking around accept 835
         tcp预先派生子进程服务器程序,accept使用线程上锁保护
         30.9 tcp preforked server, descriptor passing 836
         tcp预先派生子进程服务器程序,传递描述符
         30.10 tcp concurrent server, one thread per client 842
         tcp并发服务器程序,每个客户一个线程
         30.11 tcp prethreaded server, per-thread accept 844
         tcp预先创建线程服务器程序,每个线程各自accept
         30.12 tcp prethreaded server, main thread accept 846
         tcp预先创建线程服务器程序,主线程统一accept
         30.13 summary 849
         小结
         chapter 31 streams 851
         31.1 introduction 851
         概述
         31.2 overview 851
         概貌
         31.3 getmsg and putmsg functions 856
         getmsg和putmsg函数
         31.4 getpmsg and putpmsg functions 857
         getpmsg和putpmsg函数
         31.5 ioctl function 857
         ioctl函数
         31.6 transport provider interface (tpi) 858
         传输提供者接口
         31.7 summary 868
         小结
         appendix a ipv4, ipv6, icmpv4, and icmpv6 869
         ipv4、ipv6、icmpv4和icmpv6
         a.1 introduction 869
         概述
         a.2 ipv4 header 869
         ipv4首部
         a.3 ipv6 header 871
         ipv6首部
         a.4 ipv4 addresses 874
         ipv4地址
         a.5 ipv6 addresses 877
         ipv6地址
         a.6 internet control message protocols (icmpv4 and icmpv6) 882
         因特网控制消息协议(icmpv4和icmpv6)
         appendix b virtual networks 885
         虚拟网络
         b.1 introduction 885
         概述
         b.2 the mbone 885
         b.3 the 6bone 887
         b.4 ipv6 transition: 6to4 889
         ipv6过渡:6to4
         appendix c debugging techniques 891
         调试技术
         c.1 system call tracing 891
         系统调用跟踪
         c.2 standard internet services 893
         标准因特网服务
         c.3 sock program 893
         sock程序
         c.4 small test programs 896
         小测试程序
         c.5 tcpdump program 896
         tcpdump程序
         c.6 netstat program 896
         netstat程序
         c.7 lsof program 897
         lsof程序
         appendix d miscellaneous source code 899
         其他源代码
         d.1 unp.h header 899
         unp.h头文件
         d.2 config.h header 904
         config.h头文件
         d.3 standard error functions 910
         标准错误处理函数
         appendix e solutions to selectedexercises 913
         精选习题答案
         bibliography 947
         参考文献
         index 955
         索引 ...
      · · · · · ·     (
收起)