- 博客(1)
- 资源 (10)
- 收藏
- 关注
TCP-IP详解卷1:协议
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。
目 录
译者序
前言
第1章 概述 1
1.1 引言 1
1.2 分层 1
1.3 TCP/IP的分层 4
1.4 互联网的地址 5
1.5 域名系统 6
1.6 封装 6
1.7 分用 8
1.8 客户-服务器模型 8
1.9 端口号 9
1.10 标准化过程 10
1.11 RFC 10
1.12 标准的简单服务 11
1.13 互联网 12
1.14 实现 12
1.15 应用编程接口 12
1.16 测试网络 13
1.17 小结 13
第2章 链路层 15
2.1 引言 15
2.2 以太网和IEEE 802封装 15
2.3 尾部封装 17
2.4 SLIP:串行线路IP 17
2.5 压缩的SLIP 18
2.6 PPP:点对点协议 18
2.7 环回接口 20
2.8 最大传输单元MTU 21
2.9 路径MTU 21
2.10 串行线路吞吐量计算 21
2.11 小结 22
第3章 IP:网际协议 24
3.1 引言 24
3.2 IP首部 24
3.3 IP路由选择 27
3.4 子网寻址 30
3.5 子网掩码 32
3.6 特殊情况的IP地址 33
3.7 一个子网的例子 33
3.8 ifconfig命令 35
3.9 netstat命令 36
3.10 IP的未来 36
3.11 小结 37
第4章 ARP:地址解析协议 38
4.1 引言 38
4.2 一个例子 38
4.3 ARP高速缓存 40
4.4 ARP的分组格式 40
4.5 ARP举例 41
4.5.1 一般的例子 41
4.5.2 对不存在主机的ARP请求 42
4.5.3 ARP高速缓存超时设置 43
4.6 ARP代理 43
4.7 免费ARP 45
4.8 arp命令 45
4.9 小结 46
第5章 RARP:逆地址解析协议 47
5.1 引言 47
5.2 RARP的分组格式 47
5.3 RARP举例 47
5.4 RARP服务器的设计 48
5.4.1 作为用户进程的RARP服务器 49
5.4.2 每个网络有多个RARP服务器 49
5.5 小结 49
第6章 ICMP:Internet控制报文协议 50
6.1 引言 50
6.2 ICMP报文的类型 50
6.3 ICMP地址掩码请求与应答 52
6.4 ICMP时间戳请求与应答 53
6.4.1 举例 54
6.4.2 另一种方法 55
6.5 ICMP端口不可达差错 56
6.6 ICMP报文的4.4BSD处理 59
6.7 小结 60
第7章 Ping程序 61
7.1 引言 61
7.2 Ping程序 61
7.2.1 LAN输出 62
7.2.2 WAN输出 63
7.2.3 线路SLIP链接 64
7.2.4 拨号SLIP链路 65
7.3 IP记录路由选项 65
7.3.1 通常的例子 66
7.3.2 异常的输出 68
7.4 IP时间戳选项 69
7.5 小结 70
第8章 Traceroute程序 71
8.1 引言 71
8.2 Traceroute 程序的操作 71
8.3 局域网输出 72
8.4 广域网输出 75
8.5 IP源站选路选项 76
8.5.1 宽松的源站选路的traceroute
程序示例 78
8.5.2 严格的源站选路的traceroute
程序示例 79
8.5.3 宽松的源站选路traceroute程序
的往返路由 80
8.6 小结 81
第9章 IP选路 83
9.1 引言 83
9.2 选路的原理 84
9.2.1 简单路由表 84
9.2.2 初始化路由表 86
9.2.3 较复杂的路由表 87
9.2.4 没有到达目的地的路由 87
9.3 ICMP主机与网络不可达差错 88
9.4 转发或不转发 89
9.5 ICMP重定向差错 89
9.5.1 一个例子 90
9.5.2 更多的细节 91
9.6 ICMP路由器发现报文 92
9.6.1 路由器操作 93
9.6.2 主机操作 93
9.6.3 实现 93
9.7 小结 94
第10章 动态选路协议 95
10.1 引言 95
10.2 动态选路 95
10.3 Unix选路守护程序 96
10.4 RIP:选路信息协议 96
10.4.1 报文格式 96
10.4.2 正常运行 97
10.4.3 度量 98
10.4.4 问题 98
10.4.5 举例 98
10.4.6 另一个例子 100
10.5 RIP版本2 102
10.6 OSPF:开放最短路径优先 102
10.7 BGP:边界网关协议 103
10.8 CIDR:无类型域间选路 104
10.9 小结 105
第11章 UDP:用户数据报协议 107
11.1 引言 107
11.2 UDP首部 107
11.3 UDP检验和 108
11.3.1 tcpdump输出 109
11.3.2 一些统计结果 109
11.4 一个简单的例子 110
11.5 IP分片 111
11.6 ICMP不可达差错(需要分片) 113
11.7 用Traceroute确定路径MTU 114
11.8 采用UDP的路径MTU发现 116
11.9 UDP和ARP之间的交互作用 118
11.10 最大UDP数据报长度 119
11.11 ICMP源站抑制差错 120
11.12 UDP服务器的设计 122
11.12.1 客户IP地址及端口号 122
11.12.2 目标IP地址 122
11.12.3 UDP输入队列 122
11.12.4 限制本地IP地址 124
11.12.5 限制远端IP地址 125
11.12.6 每个端口有多个接收者 125
11.13 小结 126
第12章 广播和多播 128
12.1 引言 128
12.2 广播 129
12.2.1 受限的广播 129
12.2.2 指向网络的广播 129
12.2.3 指向子网的广播 129
12.2.4 指向所有子网的广播 130
12.3 广播的例子 130
12.4 多播 132
12.4.1 多播组地址 133
12.4.2 多播组地址到以太网地址的转换 133
12.4.3 FDDI和令牌环网络中的多播 134
12.5 小结 134
第13章 IGMP:Internet组管理协议 136
13.1 引言 136
13.2 IGMP报文 136
13.3 IGMP协议 136
13.3.1 加入一个多播组 136
13.3.2 IGMP报告和查询 137
13.3.3 实现细节 137
13.3.4 生存时间字段 138
13.3.5 所有主机组 138
13.4 一个例子 138
13.5 小结 141
第14章 DNS:域名系统 142
14.1 引言 142
14.2 DNS基础 142
14.3 DNS的报文格式 144
14.3.1 DNS查询报文中的问题部分 146
14.3.2 DNS响应报文中的资源记录部分 147
14.4 一个简单的例子 147
14.5 指针查询 150
14.5.1 举例 151
14.5.2 主机名检查 151
14.6 资源记录 152
14.7 高速缓存 153
14.8 用UDP还是用TCP 156
14.9 另一个例子 156
14.10 小结 157
第15章 TFTP:简单文件传送协议 159
15.1 引言 159
15.2 协议 159
15.3 一个例子 160
15.4 安全性 161
15.5 小结 162
第16章 BOOTP: 引导程序协议 163
16.1 引言 163
16.2 BOOTP的分组格式 163
16.3 一个例子 164
16.4 BOOTP服务器的设计 165
16.5 BOOTP穿越路由器 167
16.6 特定厂商信息 167
16.7 小结 168
第17章 TCP:传输控制协议 170
17.1 引言 170
17.2 TCP的服务 170
17.3 TCP的首部 171
17.4 小结 173
第18章 TCP连接的建立与终止 174
18.1 引言 174
18.2 连接的建立与终止 174
18.2.1 tcpdump的输出 174
18.2.2 时间系列 175
18.2.3 建立连接协议 175
18.2.4 连接终止协议 177
18.2.5 正常的tcpdump输出 177
18.3 连接建立的超时 178
18.3.1 第一次超时时间 178
18.3.2 服务类型字段 179
18.4 最大报文段长度 179
18.5 TCP的半关闭 180
18.6 TCP的状态变迁图 182
18.6.1 2MSL等待状态 183
18.6.2 平静时间的概念 186
18.6.3 FIN_WAIT_2状态 186
18.7 复位报文段 186
18.7.1 到不存在的端口的连接请求 187
18.7.2 异常终止一个连接 187
18.7.3 检测半打开连接 188
18.8 同时打开 189
18.9 同时关闭 191
18.10 TCP选项 191
18.11 TCP服务器的设计 192
18.11.1 TCP服务器端口号 193
18.11.2 限定的本地IP地址 194
18.11.3 限定的远端IP地址 195
18.11.4 呼入连接请求队列 195
18.12 小结 197
第19章 TCP的交互数据流 200
19.1 引言 200
19.2 交互式输入 200
19.3 经受时延的确认 201
19.4 Nagle算法 203
19.4.1 关闭Nagle算法 204
19.4.2 一个例子 205
19.5 窗口大小通告 207
19.6 小结 208
第20章 TCP的成块数据流 209
20.1 引言 209
20.2 正常数据流 209
20.3 滑动窗口 212
20.4 窗口大小 214
20.5 PUSH标志 215
20.6 慢启动 216
20.7 成块数据的吞吐量 218
20.7.1 带宽时延乘积 220
20.7.2 拥塞 220
20.8 紧急方式 221
20.9 小结 224
第21章 TCP的超时与重传 226
21.1 引言 226
21.2 超时与重传的简单例子 226
21.3 往返时间测量 227
21.4 往返时间RTT的例子 229
21.4.1 往返时间RTT的测量 229
21.4.2 RTT估计器的计算 231
21.4.3 慢启动 233
21.5 拥塞举例 233
21.6 拥塞避免算法 235
21.7 快速重传与快速恢复算法 236
21.8 拥塞举例(续) 237
21.9 按每条路由进行度量 240
21.10 ICMP的差错 240
21.11 重新分组 243
21.12 小结 243
第22章 TCP的坚持定时器 245
22.1 引言 245
22.2 一个例子 245
22.3 糊涂窗口综合症 246
22.4 小结 250
第23章 TCP的保活定时器 251
23.1 引言 251
23.2 描述 252
23.3 保活举例 253
23.3.1 另一端崩溃 253
23.3.2 另一端崩溃并重新启动 254
23.3.3 另一端不可达 254
23.4 小结 255
第24章 TCP的未来和性能 256
24.1 引言 256
24.2 路径MTU发现 256
24.2.1 一个例子 257
24.2.2 大分组还是小分组 258
24.3 长肥管道 259
24.4 窗口扩大选项 262
24.5 时间戳选项 263
24.6 PAWS:防止回绕的序号 265
24.7 T/TCP:为事务用的TCP扩展 265
24.8 TCP的性能 267
24.9 小结 268
第25章 SNMP:简单网络管理协议 270
25.1 引言 270
25.2 协议 270
25.3 管理信息结构 272
25.4 对象标识符 274
25.5 管理信息库介绍 274
25.6 实例标识 276
25.6.1 简单变量 276
25.6.2 表格 276
25.6.3 字典式排序 277
25.7 一些简单的例子 277
25.7.1 简单变量 278
25.7.2 get-next操作 278
25.7.3 表格的访问 279
25.8 管理信息库(续) 279
25.8.1 system组 279
25.8.2 interface组 280
25.8.3 at组 281
25.8.4 ip组 282
25.8.5 icmp组 285
25.8.6 tcp组 285
25.9 其他一些例子 288
25.9.1 接口MTU 288
25.9.2 路由表 288
25.10 trap 290
25.11 ASN.1和BER 291
25.12 SNMPv2 292
25.13 小结 292
第26章 Telnet和Rlogin:远程登录 293
26.1 引言 293
26.2 Rlogin协议 294
26.2.1 应用进程的启动 295
26.2.2 流量控制 295
26.2.3 客户的中断键 296
26.2.4 窗口大小的改变 296
26.2.5 服务器到客户的命令 296
26.2.6 客户到服务器的命令 297
26.2.7 客户的转义符 298
26.3 Rlogin的例子 298
26.3.1 初始的客户-服务器协议 298
26.3.2 客户中断键 299
26.4 Telnet协议 302
26.4.1 NVT ASCII 302
26.4.2 Telnet命令 302
26.4.3 选项协商 303
26.4.4 子选项协商 304
26.4.5 半双工、一次一字符、一次
一行或行方式 304
26.4.6 同步信号 306
26.4.7 客户的转义符 306
26.5 Telnet举例 306
26.5.1 单字符方式 306
26.5.2 行方式 310
26.5.3 一次一行方式(准行方式) 312
26.5.4 行方式:客户中断键 313
26.6 小结 314
第27章 FTP:文件传送协议 316
27.1 引言 316
27.2 FTP协议 316
27.2.1 数据表示 316
27.2.2 FTP命令 318
27.2.3 FTP应答 319
27.2.4 连接管理 320
27.3 FTP的例子 321
27.3.1 连接管理:临时数据端口 321
27.3.2 连接管理:默认数据端口 323
27.3.3 文本文件传输:NVT ASCII
表示还是图像表示 325
27.3.4 异常中止一个文件的传输:
Telnet同步信号 326
27.3.5 匿名FTP 329
27.3.6 来自一个未知IP地址的匿名FTP 330
27.4 小结 331
第28章 SMTP:简单邮件传送协议 332
28.1 引言 332
28.2 SMTP协议 332
28.2.1 简单例子 332
28.2.2 SMTP命令 334
28.2.3 信封、首部和正文 335
28.2.4 中继代理 335
28.2.5 NVT ASCII 337
28.2.6 重试间隔 337
28.3 SMTP的例子 337
28.3.1 MX记录:主机非直接连到
Internet 337
28.3.2 MX记录:主机出故障 339
28.3.3 VRFY和EXPN命令 340
28.4 SMTP的未来 340
28.4.1 信封的变化:扩充的SMTP 341
28.4.2 首部变化:非ASCII字符 342
28.4.3 正文变化:通用Internet邮件
扩充 343
28.5 小结 346
第29章 网络文件系统 347
29.1 引言 347
29.2 Sun远程过程调用 347
29.3 XDR:外部数据表示 349
29.4 端口映射器 349
29.5 NFS协议 351
29.5.1 文件句柄 353
29.5.2 安装协议 353
29.5.3 NFS过程 354
29.5.4 UDP还是TCP 355
29.5.5 TCP上的NFS 355
29.6 NFS实例 356
29.6.1 简单的例子:读一个文件 356
29.6.2 简单的例子:创建一个目录 357
29.6.3 无状态 358
29.6.4 例子:服务器崩溃 358
29.6.5 等幂过程 360
29.7 第3版的NFS 360
29.8 小结 361
第30章 其他的TCP/IP应用程序 363
30.1 引言 363
30.2 Finger协议 363
30.3 Whois协议 364
30.4 Archie、WAIS、Gopher、Veronica
和WWW 366
30.4.1 Archie 366
30.4.2 WAIS 366
30.4.3 Gopher 366
30.4.4 Veronica 366
30.4.5 万维网WWW 367
30.5 X窗口系统 367
30.5.1 Xscope程序 368
30.5.2 LBX: 低带宽X 370
30.6 小结 370
附录A tcpdump程序 371
附录B 计算机时钟 376
附录C sock程序 378
附录D 部分习题的解答 381
附录E 配置选项 395
附录F 可以免费获得的源代码 406
参考文献 409
缩略语 420
2011-12-07
Linux网络编程
第一章概论 ..................................................................................................................1
1.1 网络的历史.......................................................................................................1
1.2 OSI 模型...........................................................................................................3
1.3 Internet 体系模型..............................................................................................4
1.4 客户/服务器模型...............................................................................................5
1.4 UNIX 的历史 ...................................................................................................7
1.4.1 Unix 诞生前的故事.................................................................................7
1.4.2 UNIX 的诞生..........................................................................................8
1.4.3 1979 – UNIX 第七版............................................................................. 10
1.4.4 UNIX 仅仅是历史吗?............................................................................. 11
1.5 Linux 的发展.................................................................................................. 11
1.5.1 Linux 的发展历史.................................................................................. 12
1.5.2 什么叫GNU? ...................................................................................... 12
1.5.3 Linux 的特色........................................................................................ 13
1.5.4 硬件需求............................................................................................... 14
1.5.5 Linux 可用的软件................................................................................. 14
1.5.6 为什么选择 Linux ? ............................................................................ 15
1.6 Linux 和 Unix 的发展.................................................................................... 15
第二章 UNIX/Linux 模型...............................................................................................17
2.1 UNIX/Linux 基本结构.......................................................................................17
2.2 输入和输出......................................................................................................19
2.2.1 UNIX/Linux 文件系统简介......................................................................19
2.2.2 流和标准I/O 库......................................................................................20
2.3 进程................................................................................................................21
第三章进程控制 ..........................................................................................................22
3.1 进程的建立与运行...........................................................................................22
3.1.1 进程的概念............................................................................................22
3.1.2 进程的建立............................................................................................22
3.1.3 进程的运行............................................................................................24
3.1.4 数据和文件描述符的继承.......................................................................29
3.2 进程的控制操作...............................................................................................31
3.2.1 进程的终止............................................................................................31
3.2.2 进程的同步............................................................................................32
3.2.3 进程终止的特殊情况..............................................................................33
3.2.4 进程控制的实例.....................................................................................33
3.3 进程的属性......................................................................................................38
3.3.1 进程标识符............................................................................................38
3.3.2 进程的组标识符.....................................................................................39
3.3.3 进程环境................................................................................................40
3.3.4 进程的当前目录.....................................................................................42
3.3.5 进程的有效标识符..................................................................................43
3.3.6 进程的资源............................................................................................44
3.3.7 进程的优先级.........................................................................................45
3.4 守护进程.........................................................................................................46
3.4.1 简介.......................................................................................................46
3.4.2 守护进程的启动............................................................................................46
3.4.3 守护进程的错误输出..............................................................................46
3.4.4 守护进程的建立.....................................................................................48
3.5 本章小结.........................................................................................................49
第四章进程间通信.......................................................................................................50
4.1 进程间通信的一些基本概念.............................................................................50
4.2 信号................................................................................................................50
4.2.1 信号的处理............................................................................................52
4.2.2 信号与系统调用的关系...........................................................................54
4.2.3 信号的复位............................................................................................55
4.2.4 在进程间发送信号..................................................................................56
4.2.5 系统调用alarm()和pause()......................................................................58
4.2.6 系统调用setjmp()和longjmp().................................................................62
4.3 管道................................................................................................................63
4.3.1 用C 来建立、使用管道..........................................................................65
4.3.2 需要注意的问题.....................................................................................72
4.4 有名管道.........................................................................................................72
4.4.1 有名管道的创建.....................................................................................72
4.4.2 有名管道的I/O 使用...............................................................................73
4.4.3 未提到的关于有名管道的一些注意.........................................................75
4.5 文件和记录锁定...............................................................................................75
4.5.1 实例程序及其说明..................................................................................75
4.5.2 锁定中的几个概念..................................................................................78
4.5.3 System V 的咨询锁定..............................................................................78
4.5.4 BSD 的咨询式锁定.................................................................................79
4.5.5 前面两种锁定方式的比较.......................................................................81
4.5.6 Linux 的其它上锁技术............................................................................81
4.6 System V IPC ...................................................................................................84
4.6.1 ipcs 命令................................................................................................85
4.6.2 ipcrm 命令..............................................................................................86
4.7 消息队列(Message Queues)...........................................................................86
4.7.1 有关的数据结构.....................................................................................86
4.7.2 有关的函数............................................................................................89
4.7.3 消息队列实例——msgtool,一个交互式的消息队列使用工具..................94
4.8 信号量(Semaphores) .........................................................................................97
4.8.1 有关的数据结构.....................................................................................98
4.8.2 有关的函数............................................................................................99
4.8.3 信号量的实例——semtool,交互式的信号量使用工具...........................103
4.9 共享内存(Shared Memory) ..............................................................................109
4.9.1 有关的数据结构...................................................................................109
4.9.2 有关的函数.......................................................................................... 110
4.9.3 共享内存应用举例——shmtool,交互式的共享内存使用工具................... 112
4.9.4 共享内存与信号量的结合使用.............................................................. 114
第五章通信协议简介 .................................................................................................120
5.1 引言..............................................................................................................120
5.2 XNS(Xerox Network Systems)概述..............................................................120
5.2.1 XNS 分层结构......................................................................................120
5.3 IPX/SPX 协议概述........................................................................................122
5.3.1 网际包交换(IPX) .............................................................................122
5.3.2 排序包交换(SPX).............................................................................124
5.4 Net BIOS 概述................................................................................................124
5.5 Apple Talk 概述..............................................................................................125
5.6 TCP/IP 概述...................................................................................................126
5.6.1 TCP/IP 结构模型..................................................................................126
5.6.2 Internet 协议(IP)...............................................................................127
5.6.3 传输控制协议(TCP) .........................................................................132
5.6.4 用户数据报文协议................................................................................134
5.7 小结..............................................................................................................135
第六章 Berkeley 套接字............................................................................................. 136
6.1 引言............................................................................................................. 136
6.2 概述............................................................................................................. 136
6.2.1 Socket 的历史...................................................................................... 136
6.2.2 Socket 的功能...................................................................................... 136
6.2.3 套接字的三种类型............................................................................... 138
6.3 Linux 支配的网络协议................................................................................... 141
6.3.1 什么是TCP/IP? ................................................................................... 141
6.4 套接字地址................................................................................................... 142
6.4.1 什么是Socket? .................................................................................. 142
6.4.2 Socket 描述符...................................................................................... 142
6.4.3 一个套接字是怎样在网络上传输数据的?............................................ 143
6.5 套接字的一些基本知识................................................................................. 144
6.5.1 基本结构............................................................................................. 144
6.5.2 基本转换函数...................................................................................... 145
6.6 基本套接字调用............................................................................................ 147
6.6.1 socket() 函数....................................................................................... 147
6.6.2 bind() 函数......................................................................................... 148
6.6.3 connect()函数...................................................................................... 150
6.6.4 listen() 函数........................................................................................ 151
6.6.5 accept()函数........................................................................................ 152
6.6.6 send()、recv()函数............................................................................... 154
6.6.7 sendto() 和recvfrom() 函数................................................................. 155
6.6.8 close()和shutdown()函数...................................................................... 156
6.6.9 setsockopt() 和getsockopt() 函数......................................................... 157
6.6.10 getpeername()函数.............................................................................. 157
6.6.11 gethostname()函数.............................................................................. 158
6.7 DNS 的操作.................................................................................................. 158
6.7.1 理解DNS............................................................................................ 158
6.7.2 和DNS 有关的函数和结构.................................................................. 158
6.7.3 DNS 例程............................................................................................ 159
6.8 套接字的Client/Server 结构实现的例子.......................................................... 160
6.8.1 简单的流服务器.................................................................................. 161
6.8.2 简单的流式套接字客户端程序............................................................. 163
6.8.3 数据报套接字例程(DatagramSockets)............................................... 165
6.9 保留端口...................................................................................................... 169
6.9.1 简介.................................................................................................... 169
6.9.2 保留端口............................................................................................. 170
6.10 五种I/O 模式................................................................................................. 179
6.10.1 阻塞I/O 模式.................................................................................... 179
6.10.2 非阻塞模式I/O.................................................................................. 180
6.10.3 I/O 多路复用..................................................................................... 181
6.10.4 信号驱动I/O 模式............................................................................. 182
6.10.5 异步I/O 模式.................................................................................... 185
6.10.6 几种I/O 模式的比较.......................................................................... 186
6.10.7 fcntl()函数......................................................................................... 186
6.10.8 套接字选择项select()函数.................................................................. 187
6.11 带外数据..................................................................................................... 190
6.11.1 TCP 的带外数据................................................................................ 190
6.11.2 OOB 传输套接字例程(服务器代码Server.c) ................................... 193
6.11.3 OOB 传输套接字例程(客户端代码Client.c).................................... 196
6.11.4 编译例子........................................................................................... 199
6.12 使用Inetd(Internet 超级服务器) ............................................................... 199
6.12.1 简介.................................................................................................. 199
6.12.2 一个简单的inetd 使用的服务器程序hello inet service.......................... 199
6.12.3 /etc/services 和 /etc/inetd.conf 文件..................................................... 200
6.12.4 一个复杂一些的inetd 服务器程序...................................................... 201
6.12.5 一个更加复杂的inetd 服务器程序...................................................... 203
6.12.6 程序必须遵守的安全性准则............................................................... 205
6.12.7 小结.................................................................................................. 205
6.13 本章总结.................................................................................................... 205
第七章网络安全性.....................................................................................................206
7.1 网络安全简介................................................................................................206
7.1.1 网络安全的重要性................................................................................206
7.1.2 信息系统安全的脆弱性.........................................................................207
7.2 Linux 网络不安全的因素................................................................................209
7.3 Linux 程序员安全........................................................................................... 211
7.3.1 系统子程序..........................................................................................212
7.3.2 标准C 函数库.......................................................................................214
7.3.3 书写安全的C 程序................................................................................216
7.3.4 SUID/SGID 程序指导准则......................................................................217
7.3.5 root 程序的设计....................................................................................218
7.4 小结..............................................................................................................219
第八章 Ping 例程.......................................................................................................220
8.1 Ping 命令简介................................................................................................220
8.2 Ping 的基本原理.............................................................................................220
8.3 小结..............................................................................................................221
第九章 tftp 例程.........................................................................................................222
9.1 tftp 协议简介..................................................................................................222
9.2 tftp 的使用.....................................................................................................222
9.3 tftp 的原理.....................................................................................................223
9.3 tftp 的基本结构..............................................................................................223
9.4 小节..............................................................................................................225
第十章远程命令执行 .................................................................................................226
10.1 引言............................................................................................................226
10.2 rcmd 函数和rshd 服务器...............................................................................227
10.3 rexec 函数和rexecd 服务器...........................................................................233
第十一章远程注册.....................................................................................................235
11.1 简介.............................................................................................................235
11.2 终端行律和伪终端........................................................................................235
11.3 终端方式字和控制终端.................................................................................239
11.4 rlogin 概述....................................................................................................242
11.5 窗口环境......................................................................................................242
11.6 流控制与伪终端方式字.................................................................................243
11.7 rlogin 客户程序.............................................................................................245
11.8 rlogin 服务器................................................................................................246
第十二章远程过程调用..............................................................................................249
12.1 引言............................................................................................................249
12.2 远程过程调用模型.......................................................................................249
12.3 传统过程调用和远程过程调用的比较...........................................................250
12.4 远程过程调用的定义....................................................................................252
12.5 远程过程调用的有关问题.............................................................................252
12.5.1 远程过程调用传送协议.......................................................................253
12.5.2 Sun RPC ...........................................................................................254
12.5.3 Xerox Courier ....................................................................................254
12.5.4 Apollo RPC........................................................................................255
12.6 stub 过程简介...............................................................................................256
12.7 rpcgen 简介..................................................................................................256
12.8 分布式程序生成的例子................................................................................257
12.8.1 我们如何能够构造出一个分布式应用程序...........................................257
12.9 小结............................................................................................................283
第十三章远程磁带的访问 ..........................................................................................284
13.1 简介............................................................................................................284
13.2 Linux 磁带驱动器的处理..............................................................................285
13.3 rmt 协议.......................................................................................................285
13.4 rmt 服务器设计分析.....................................................................................286
第十四章 WWW 上HTTP 协议.................................................................................. 290
14.1 引言............................................................................................................ 290
14.2 HTTP 客户请求........................................................................................... 290
14.2.1 客户端.............................................................................................. 290
14.2.2 服务器端........................................................................................... 290
14.2.3 Web 请求简介.................................................................................... 291
14.2.4 HTTP – HyperText Transfer Protocol 超文本传输协议........................... 295
14.3 Web 编程.................................................................................................... 297
14.4 小结........................................................................................................... 301
附录A 有关网络通信的服务和网络库函数...................................................................302
附录B Vi 使用简介.....................................................................................................319
B.1 Vi 基本观念...................................................................................................319
B.1.1 进入与离开..........................................................................................319
B.1.2 Vi 输入模式.........................................................................................319
B.2 Vi 基本编辑...................................................................................................320
B.2.1 删除与修改..........................................................................................320
B.3 Vi 进阶应用...................................................................................................320
B.3.1 移动光标.............................................................................................320
B.3.2 进阶编辑命令......................................................................................322
B.3.3 文件命令.............................................................................................322
附录C Linux 下C 语言使用与调试简介......................................................................324
C.1 C 语言编程...................................................................................................324
C.2 什么是C? .....................................................................................................324
C.3 GNU C 编译器...............................................................................................324
C.3.1 使用GCC............................................................................................324
C.3.2 GCC 选项............................................................................................325
C.3.3 优化选项.............................................................................................325
C.3.4 调试和剖析选项...................................................................................325
C.3.5 用gdb 调试GCC 程序..........................................................................326
C.4 另外的C 编程工具........................................................................................330
C.4.1 Xxgdb..................................................................................................330
C.4.2 Calls ....................................................................................................331
C.4.3 cproto ..................................................................................................332
C.4.4 Indent ..................................................................................................333
C.4.5 Gprof...................................................................................................334
C.4.6 f2c 和p2c ............................................................................................335
2011-12-07
中文第一版-UNIX环境高级编程
目 录
译者序
译者简介
前言
第1章 UNIX基础知识 1
1.1 引言 1
1.2 登录 1
1.2.1 登录名 1
1.2.2 shell 1
1.3 文件和目录 2
1.3.1 文件系统 2
1.3.2 文件名 2
1.3.3 路径名 2
1.3.4 工作目录 4
1.3.5 起始目录 4
1.4 输入和输出 5
1.4.1 文件描述符 5
1.4.2 标准输入、标准输出和标准
出错 5
1.4.3 不用缓存的I/O 5
1.4.4 标准I/O 6
1.5 程序和进程 7
1.5.1 程序 7
1.5.2 进程和进程ID 7
1.5.3 进程控制 7
1.6 ANSI C 9
1.6.1 函数原型 9
1.6.2 类属指针 9
1.6.3 原始系统数据类型 10
1.7 出错处理 10
1.8 用户标识 11
1.8.1 用户ID 11
1.8.2 组ID 12
1.8.3 添加组ID 12
1.9 信号 12
1.10 UNIX时间值 14
1.11 系统调用和库函数 14
1.12 小结 16
习题 16
第2章 UNIX标准化及实现 17
2.1 引言 17
2.2 UNIX标准化 17
2.2.1 ANSI C 17
2.2.2 IEEE POSIX 18
2.2.3 X/Open XPG3 19
2.2.4 FIPS 19
2.3 UNIX实现 19
2.3.1 SVR4 20
2.3.2 4.3+BSD 20
2.4 标准和实现的关系 21
2.5 限制 21
2.5.1 ANSI C限制 22
2.5.2 POSIX限制 22
2.5.3 XPG3限制 24
2.5.4 sysconf、pathconf 和fpathconf
函数 24
2.5.5 FIPS 151-1要求 28
2.5.6 限制总结 28
2.5.7 未确定的运行时间限制 29
2.6 功能测试宏 32
2.7 基本系统数据类型 32
2.8 标准之间的冲突 33
2.9 小结 34
习题 34
第3章 文件I/O 35
3.1 引言 35
3.2 文件描述符 35
3.3 open函数 35
3.4 creat函数 37
3.5 close函数 37
3.6 lseek函数 38
3.7 read函数 40
3.8 write函数 41
3.9 I/O的效率 41
3.10 文件共享 42
3.11 原子操作 45
3.11.1 添加至一个文件 45
3.11.2 创建一个文件 45
3.12 dup和dup2函数 46
3.13 fcntl函数 47
3.14 ioctl函数 50
3.15 /dev/fd 51
3.16 小结 52
习题 52
第4章 文件和目录 54
4.1 引言 54
4.2 stat, fstat和lstat函数 54
4.3 文件类型 55
4.4 设置-用户-ID和设置-组-ID 57
4.5 文件存取许可权 58
4.6 新文件和目录的所有权 60
4.7 access函数 60
4.8 umask函数 62
4.9 chmod和fchmod函数 63
4.10 粘住位 65
4.11 chown, fchown和 lchown函数 66
4.12 文件长度 67
4.13 文件截短 68
4.14 文件系统 69
4.15 link, unlink, remove和rename
函数 71
4.16 符号连接 73
4.17 symlink 和readlink函数 76
4.18 文件的时间 76
4.19 utime函数 78
4.20 mkdir和rmdir函数 79
4.21 读目录 80
4.22 chdir, fchdir和getcwd函数 84
4.23 特殊设备文件 86
4.24 sync和fsync函数 87
4.25 文件存取许可权位小结 88
4.26 小结 89
习题 89
第5章 标准I/O库 91
5.1 引言 91
5.2 流和FILE对象 91
5.3 标准输入、标准输出和标准出错 91
5.4 缓存 91
5.5 打开流 94
5.6 读和写流 96
5.6.1 输入函数 96
5.6.2 输出函数 97
5.7 每次一行I/O 98
5.8 标准I/O的效率 99
5.9 二进制I/O 100
5.10 定位流 102
5.11 格式化I/O 103
5.11.1 格式化输出 103
5.11.2 格式化输入 103
5.12 实现细节 104
5.13 临时文件 105
5.14 标准I/O的替代软件 108
5.15 小结 108
习题 108
第6章 系统数据文件和信息 110
6.1 引言 110
6.2 口令文件 110
6.3 阴影口令 112
6.4 组文件 113
6.5 添加组ID 114
6.6 其他数据文件 115
6.7 登录会计 116
6.8 系统标识 116
6.9 时间和日期例程 117
6.10 小结 121
习题 121
第7章 UNIX进程的环境 122
7.1 引言 122
7.2 main 函数 122
7.3 进程终止 122
7.3.1 exit和_exit函数 122
7.3.2 atexit函数 124
7.4 命令行参数 125
7.5 环境表 126
7.6 C程序的存储空间布局 126
7.7 共享库 127
7.8 存储器分配 128
7.9 环境变量 130
7.10 setjmp 和longjmp函数 132
7.10.1 自动、寄存器和易失变量 134
7.10.2 自动变量的潜在问题 136
7.11 getrlimit 和setrlimit函数 136
7.12 小结 139
习题 140
第8章 进程控制 141
8.1 引言 141
8.2 进程标识 141
8.3 fork函数 142
8.4 vfork 函数 145
8.5 exit函数 147
8.6 wait和waitpid函数 148
8.7 wait3和wait4函数 152
8.8 竞态条件 153
8.9 exec函数 156
8.10 更改用户ID和组ID 160
8.10.1 setreuid 和setregid函数 162
8.10.2 seteuid和 setegid函数 163
8.10.3 组ID 163
8.11 解释器文件 164
8.12 system函数 167
8.13 进程会计 171
8.14 用户标识 175
8.15 进程时间 176
8.16 小结 178
习题 178
第9章 进程关系 180
9.1 引言 180
9.2 终端登录 180
9.2.1 4.3+BSD终端登录 180
9.2.2 SVR4终端登录 182
9.3 网络登录 182
9.3.1 4.3+BSD网络登录 182
9.3.2 SVR4网络登录 183
9.4 进程组 183
9.5 对话期 184
9.6 控制终端 185
9.7 tcgetpgrp 和tcsetpgrp函数 187
9.8 作业控制 187
9.9 shell执行程序 189
9.10 孤儿进程组 193
9.11 4.3+BSD实现 195
9.12 小结 197
习题 197
第10章 信号 198
10.1 引言 198
10.2 信号的概念 198
10.3 signal函数 203
10.3.1 程序起动 205
10.3.2 进程创建 206
10.4 不可靠的信号 206
10.5 中断的系统调用 207
10.6 可再入函数 209
10.7 SIGCLD语义 211
10.8 可靠信号术语和语义 213
10.9 kill和raise函数 213
10.10 alarm和pause函数 214
10.11 信号集 219
10.12 sigprocmask 函数 220
10.13 sigpending函数 222
10.14 sigaction函数 223
10.15 sigsetjmp 和siglongjmp函数 226
10.16 sigsuspend函数 229
10.17 abort函数 234
10.18 system函数 235
10.19 sleep函数 240
10.20 作业控制信号 241
10.21 其他特征 243
10.21.1 信号名字 243
10.21.2 SVR4信号处理程序的附
加参数 244
10.21.3 4.3+BSD信号处理程序的附
加参数 244
10.22 小结 244
习题 244
第11章 终端I/O 246
11.1 引言 246
11.2 综述 246
11.3 特殊输入字符 250
11.4 获得和设置终端属性 254
11.5 终端选择标志 254
11.6 stty命令 258
11.7 波特率函数 259
11.8 行控制函数 260
11.9 终端标识 260
11.10 规范方式 263
11.11 非规范方式 266
11.12 终端的窗口大小 270
11.13 termcap, terminfo和 curses 271
11.14 小结 272
习题 272
第12章 高级I/O 273
12.1 引言 273
12.2 非阻塞I/O 273
12.3 记录锁 275
12.3.1 历史 276
12.3.2 fcntl记录锁 276
12.3.3 锁的隐含继承和释放 280
12.3.4 4.3+BSD的实现 281
12.3.5 建议性锁和强制性锁 284
12.4 流 288
12.4.1 流消息 289
12.4.2 putmsg和putpmsg函数 290
12.4.3 流ioctl操作 291
12.4.4 write至流设备 294
12.4.5 写方式 294
12.4.6 getmsg和getpmsg函数 294
12.4.7 读方式 295
12.5 I/O多路转接 296
12.5.1 select函数 298
12.5.2 poll函数 301
12.6 异步I/O 303
12.6.1 SVR4 303
12.6.2 4.3+BSD 303
12.7 readv和writev函数 304
12.8 readn和writen函数 306
12.9 存储映射I/O 307
12.10 小结 311
习题 311
第13章 精灵进程 312
13.1 引言 312
13.2 精灵进程的特征 312
13.3 编程规则 313
13.4 出错记录 314
13.4.1 SVR4流log驱动程序 315
13.4.2 4.3+BSD syslog设施 316
13.5 客户机-服务器模型 319
13.6 小结 319
习题 319
第14章 进程间通信 320
14.1 引言 320
14.2 管道 320
14.3 popen和pclose函数 325
14.4 协同进程 330
14.5 FIFO 333
14.6 系统V IPC 335
14.6.1 标识符和关键字 336
14.6.2 许可权结构 337
14.6.3 结构限制 337
14.6.4 优点和缺点 337
14.7 消息队列 338
14.8 信号量 342
14.9 共享存储 346
14.10 客户机-服务器属性 351
14.11 小结 353
习题 353
第15章 高级进程间通信 355
15.1 引言 355
15.2 流管道 355
15.3 传送文件描述符 358
15.3.1 SVR4 360
15.3.2 4.3BSD 361
15.3.3 4.3+BSD 364
15.4 open服务器第1版 366
15.5 客户机-服务器连接函数 371
15.5.1 SVR4 372
15.5.2 4.3+BSD 375
15.6 open服务器第2版 378
15.7 小结 385
习题 385
第16章 数据库函数库 386
16.1 引言 386
16.2 历史 386
16.3 函数库 386
16.4 实现概述 388
16.5 集中式或非集中式 390
16.6 并发 391
16.6.1 粗锁 391
16.6.2 细锁 391
16.7 源码 392
16.8 性能 409
16.8.1 单进程的结果 410
16.8.2 多进程的结果 410
16.9 小结 412
习题 412
第17章 与PostScript打印机通信 413
17.1 引言 413
17.2 PostScript通信机制 413
17.3 假脱机打印 415
17.4 源码 417
17.5 小结 434
习题 434
第18章 调制解调器拨号器 435
18.1 引言 435
18.2 历史 435
18.3 程序设计 436
18.4 数据文件 437
18.5 服务器设计 439
18.6 服务器源码 439
18.7 客户机设计 463
18.7.1 终端行规程 463
18.7.2 一个进程还是两个进程 464
18.8 客户机源码 465
18.9 小结 474
习题 474
第19章 伪终端 476
19.1 引言 476
19.2 概述 476
19.2.1 网络登录服务器 477
19.2.2 script程序 478
19.2.3 expect程序 479
19.2.4 运行协同进程 479
19.2.5 观看长时间运行程序的输出 479
19.3 打开伪终端设备 480
19.3.1 SVR4 481
19.3.2 4.3+BSD 482
19.4 pty_fork函数 484
19.5 pty程序 486
19.6 使用pty程序 489
19.6.1 utmp文件 489
19.6.2 作业控制交互 489
19.6.3 检查长时间运行程序的输出 491
19.6.4 script程序 491
19.6.5 运行协同进程 492
19.6.6 用非交互模式驱动交互式
程序 492
19.7 其他特性 494
19.7.1 打包模式 494
19.7.2 远程模式 494
19.7.3 窗口大小变化 495
19.7.4 信号发生 495
19.8 小结 495
习题 495
附录A 函数原型 497
附录B 其他源代码 512
附录C 习题答案 518
参考书目 536
2011-12-07
TCP-IP详解.卷二:实现
好书无需介绍,楼主确保资源,绝对的好资源。
卷一我也上传了,自己看着下载就行了
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。
目 录
译者序
前言
第1章 概述 1
1.1 引言 1
1.2 分层 1
1.3 TCP/IP的分层 4
1.4 互联网的地址 5
1.5 域名系统 6
1.6 封装 6
1.7 分用 8
1.8 客户-服务器模型 8
1.9 端口号 9
1.10 标准化过程 10
1.11 RFC 10
1.12 标准的简单服务 11
1.13 互联网 12
1.14 实现 12
1.15 应用编程接口 12
1.16 测试网络 13
1.17 小结 13
第2章 链路层 15
2.1 引言 15
2.2 以太网和IEEE 802封装 15
2.3 尾部封装 17
2.4 SLIP:串行线路IP 17
2.5 压缩的SLIP 18
2.6 PPP:点对点协议 18
2.7 环回接口 20
2.8 最大传输单元MTU 21
2.9 路径MTU 21
2.10 串行线路吞吐量计算 21
2.11 小结 22
第3章 IP:网际协议 24
3.1 引言 24
3.2 IP首部 24
3.3 IP路由选择 27
3.4 子网寻址 30
3.5 子网掩码 32
3.6 特殊情况的IP地址 33
3.7 一个子网的例子 33
3.8 ifconfig命令 35
3.9 netstat命令 36
3.10 IP的未来 36
3.11 小结 37
第4章 ARP:地址解析协议 38
4.1 引言 38
4.2 一个例子 38
4.3 ARP高速缓存 40
4.4 ARP的分组格式 40
4.5 ARP举例 41
4.5.1 一般的例子 41
4.5.2 对不存在主机的ARP请求 42
4.5.3 ARP高速缓存超时设置 43
4.6 ARP代理 43
4.7 免费ARP 45
4.8 arp命令 45
4.9 小结 46
第5章 RARP:逆地址解析协议 47
5.1 引言 47
5.2 RARP的分组格式 47
5.3 RARP举例 47
5.4 RARP服务器的设计 48
5.4.1 作为用户进程的RARP服务器 49
5.4.2 每个网络有多个RARP服务器 49
5.5 小结 49
第6章 ICMP:Internet控制报文协议 50
6.1 引言 50
6.2 ICMP报文的类型 50
6.3 ICMP地址掩码请求与应答 52
6.4 ICMP时间戳请求与应答 53
6.4.1 举例 54
6.4.2 另一种方法 55
6.5 ICMP端口不可达差错 56
6.6 ICMP报文的4.4BSD处理 59
6.7 小结 60
第7章 Ping程序 61
7.1 引言 61
7.2 Ping程序 61
7.2.1 LAN输出 62
7.2.2 WAN输出 63
7.2.3 线路SLIP链接 64
7.2.4 拨号SLIP链路 65
7.3 IP记录路由选项 65
7.3.1 通常的例子 66
7.3.2 异常的输出 68
7.4 IP时间戳选项 69
7.5 小结 70
第8章 Traceroute程序 71
8.1 引言 71
8.2 Traceroute 程序的操作 71
8.3 局域网输出 72
8.4 广域网输出 75
8.5 IP源站选路选项 76
8.5.1 宽松的源站选路的traceroute
程序示例 78
8.5.2 严格的源站选路的traceroute
程序示例 79
8.5.3 宽松的源站选路traceroute程序
的往返路由 80
8.6 小结 81
第9章 IP选路 83
9.1 引言 83
9.2 选路的原理 84
9.2.1 简单路由表 84
9.2.2 初始化路由表 86
9.2.3 较复杂的路由表 87
9.2.4 没有到达目的地的路由 87
9.3 ICMP主机与网络不可达差错 88
9.4 转发或不转发 89
9.5 ICMP重定向差错 89
9.5.1 一个例子 90
9.5.2 更多的细节 91
9.6 ICMP路由器发现报文 92
9.6.1 路由器操作 93
9.6.2 主机操作 93
9.6.3 实现 93
9.7 小结 94
第10章 动态选路协议 95
10.1 引言 95
10.2 动态选路 95
10.3 Unix选路守护程序 96
10.4 RIP:选路信息协议 96
10.4.1 报文格式 96
10.4.2 正常运行 97
10.4.3 度量 98
10.4.4 问题 98
10.4.5 举例 98
10.4.6 另一个例子 100
10.5 RIP版本2 102
10.6 OSPF:开放最短路径优先 102
10.7 BGP:边界网关协议 103
10.8 CIDR:无类型域间选路 104
10.9 小结 105
第11章 UDP:用户数据报协议 107
11.1 引言 107
11.2 UDP首部 107
11.3 UDP检验和 108
11.3.1 tcpdump输出 109
11.3.2 一些统计结果 109
11.4 一个简单的例子 110
11.5 IP分片 111
11.6 ICMP不可达差错(需要分片) 113
11.7 用Traceroute确定路径MTU 114
11.8 采用UDP的路径MTU发现 116
11.9 UDP和ARP之间的交互作用 118
11.10 最大UDP数据报长度 119
11.11 ICMP源站抑制差错 120
11.12 UDP服务器的设计 122
11.12.1 客户IP地址及端口号 122
11.12.2 目标IP地址 122
11.12.3 UDP输入队列 122
11.12.4 限制本地IP地址 124
11.12.5 限制远端IP地址 125
11.12.6 每个端口有多个接收者 125
11.13 小结 126
第12章 广播和多播 128
12.1 引言 128
12.2 广播 129
12.2.1 受限的广播 129
12.2.2 指向网络的广播 129
12.2.3 指向子网的广播 129
12.2.4 指向所有子网的广播 130
12.3 广播的例子 130
12.4 多播 132
12.4.1 多播组地址 133
12.4.2 多播组地址到以太网地址的转换 133
12.4.3 FDDI和令牌环网络中的多播 134
12.5 小结 134
第13章 IGMP:Internet组管理协议 136
13.1 引言 136
13.2 IGMP报文 136
13.3 IGMP协议 136
13.3.1 加入一个多播组 136
13.3.2 IGMP报告和查询 137
13.3.3 实现细节 137
13.3.4 生存时间字段 138
13.3.5 所有主机组 138
13.4 一个例子 138
13.5 小结 141
第14章 DNS:域名系统 142
14.1 引言 142
14.2 DNS基础 142
14.3 DNS的报文格式 144
14.3.1 DNS查询报文中的问题部分 146
14.3.2 DNS响应报文中的资源记录部分 147
14.4 一个简单的例子 147
14.5 指针查询 150
14.5.1 举例 151
14.5.2 主机名检查 151
14.6 资源记录 152
14.7 高速缓存 153
14.8 用UDP还是用TCP 156
14.9 另一个例子 156
14.10 小结 157
第15章 TFTP:简单文件传送协议 159
15.1 引言 159
15.2 协议 159
15.3 一个例子 160
15.4 安全性 161
15.5 小结 162
第16章 BOOTP: 引导程序协议 163
16.1 引言 163
16.2 BOOTP的分组格式 163
16.3 一个例子 164
16.4 BOOTP服务器的设计 165
16.5 BOOTP穿越路由器 167
16.6 特定厂商信息 167
16.7 小结 168
第17章 TCP:传输控制协议 170
17.1 引言 170
17.2 TCP的服务 170
17.3 TCP的首部 171
17.4 小结 173
第18章 TCP连接的建立与终止 174
18.1 引言 174
18.2 连接的建立与终止 174
18.2.1 tcpdump的输出 174
18.2.2 时间系列 175
18.2.3 建立连接协议 175
18.2.4 连接终止协议 177
18.2.5 正常的tcpdump输出 177
18.3 连接建立的超时 178
18.3.1 第一次超时时间 178
18.3.2 服务类型字段 179
18.4 最大报文段长度 179
18.5 TCP的半关闭 180
18.6 TCP的状态变迁图 182
18.6.1 2MSL等待状态 183
18.6.2 平静时间的概念 186
18.6.3 FIN_WAIT_2状态 186
18.7 复位报文段 186
18.7.1 到不存在的端口的连接请求 187
18.7.2 异常终止一个连接 187
18.7.3 检测半打开连接 188
18.8 同时打开 189
18.9 同时关闭 191
18.10 TCP选项 191
18.11 TCP服务器的设计 192
18.11.1 TCP服务器端口号 193
18.11.2 限定的本地IP地址 194
18.11.3 限定的远端IP地址 195
18.11.4 呼入连接请求队列 195
18.12 小结 197
第19章 TCP的交互数据流 200
19.1 引言 200
19.2 交互式输入 200
19.3 经受时延的确认 201
19.4 Nagle算法 203
19.4.1 关闭Nagle算法 204
19.4.2 一个例子 205
19.5 窗口大小通告 207
19.6 小结 208
第20章 TCP的成块数据流 209
20.1 引言 209
20.2 正常数据流 209
20.3 滑动窗口 212
20.4 窗口大小 214
20.5 PUSH标志 215
20.6 慢启动 216
20.7 成块数据的吞吐量 218
20.7.1 带宽时延乘积 220
20.7.2 拥塞 220
20.8 紧急方式 221
20.9 小结 224
第21章 TCP的超时与重传 226
21.1 引言 226
21.2 超时与重传的简单例子 226
21.3 往返时间测量 227
21.4 往返时间RTT的例子 229
21.4.1 往返时间RTT的测量 229
21.4.2 RTT估计器的计算 231
21.4.3 慢启动 233
21.5 拥塞举例 233
21.6 拥塞避免算法 235
21.7 快速重传与快速恢复算法 236
21.8 拥塞举例(续) 237
21.9 按每条路由进行度量 240
21.10 ICMP的差错 240
21.11 重新分组 243
21.12 小结 243
第22章 TCP的坚持定时器 245
22.1 引言 245
22.2 一个例子 245
22.3 糊涂窗口综合症 246
22.4 小结 250
第23章 TCP的保活定时器 251
23.1 引言 251
23.2 描述 252
23.3 保活举例 253
23.3.1 另一端崩溃 253
23.3.2 另一端崩溃并重新启动 254
23.3.3 另一端不可达 254
23.4 小结 255
第24章 TCP的未来和性能 256
24.1 引言 256
24.2 路径MTU发现 256
24.2.1 一个例子 257
24.2.2 大分组还是小分组 258
24.3 长肥管道 259
24.4 窗口扩大选项 262
24.5 时间戳选项 263
24.6 PAWS:防止回绕的序号 265
24.7 T/TCP:为事务用的TCP扩展 265
24.8 TCP的性能 267
24.9 小结 268
第25章 SNMP:简单网络管理协议 270
25.1 引言 270
25.2 协议 270
25.3 管理信息结构 272
25.4 对象标识符 274
25.5 管理信息库介绍 274
25.6 实例标识 276
25.6.1 简单变量 276
25.6.2 表格 276
25.6.3 字典式排序 277
25.7 一些简单的例子 277
25.7.1 简单变量 278
25.7.2 get-next操作 278
25.7.3 表格的访问 279
25.8 管理信息库(续) 279
25.8.1 system组 279
25.8.2 interface组 280
25.8.3 at组 281
25.8.4 ip组 282
25.8.5 icmp组 285
25.8.6 tcp组 285
25.9 其他一些例子 288
25.9.1 接口MTU 288
25.9.2 路由表 288
25.10 trap 290
25.11 ASN.1和BER 291
25.12 SNMPv2 292
25.13 小结 292
第26章 Telnet和Rlogin:远程登录 293
26.1 引言 293
26.2 Rlogin协议 294
26.2.1 应用进程的启动 295
26.2.2 流量控制 295
26.2.3 客户的中断键 296
26.2.4 窗口大小的改变 296
26.2.5 服务器到客户的命令 296
26.2.6 客户到服务器的命令 297
26.2.7 客户的转义符 298
26.3 Rlogin的例子 298
26.3.1 初始的客户-服务器协议 298
26.3.2 客户中断键 299
26.4 Telnet协议 302
26.4.1 NVT ASCII 302
26.4.2 Telnet命令 302
26.4.3 选项协商 303
26.4.4 子选项协商 304
26.4.5 半双工、一次一字符、一次
一行或行方式 304
26.4.6 同步信号 306
26.4.7 客户的转义符 306
26.5 Telnet举例 306
26.5.1 单字符方式 306
26.5.2 行方式 310
26.5.3 一次一行方式(准行方式) 312
26.5.4 行方式:客户中断键 313
26.6 小结 314
第27章 FTP:文件传送协议 316
27.1 引言 316
27.2 FTP协议 316
27.2.1 数据表示 316
27.2.2 FTP命令 318
27.2.3 FTP应答 319
27.2.4 连接管理 320
27.3 FTP的例子 321
27.3.1 连接管理:临时数据端口 321
27.3.2 连接管理:默认数据端口 323
27.3.3 文本文件传输:NVT ASCII
表示还是图像表示 325
27.3.4 异常中止一个文件的传输:
Telnet同步信号 326
27.3.5 匿名FTP 329
27.3.6 来自一个未知IP地址的匿名FTP 330
27.4 小结 331
第28章 SMTP:简单邮件传送协议 332
28.1 引言 332
28.2 SMTP协议 332
28.2.1 简单例子 332
28.2.2 SMTP命令 334
28.2.3 信封、首部和正文 335
28.2.4 中继代理 335
28.2.5 NVT ASCII 337
28.2.6 重试间隔 337
28.3 SMTP的例子 337
28.3.1 MX记录:主机非直接连到
Internet 337
28.3.2 MX记录:主机出故障 339
28.3.3 VRFY和EXPN命令 340
28.4 SMTP的未来 340
28.4.1 信封的变化:扩充的SMTP 341
28.4.2 首部变化:非ASCII字符 342
28.4.3 正文变化:通用Internet邮件
扩充 343
28.5 小结 346
第29章 网络文件系统 347
29.1 引言 347
29.2 Sun远程过程调用 347
29.3 XDR:外部数据表示 349
29.4 端口映射器 349
29.5 NFS协议 351
29.5.1 文件句柄 353
29.5.2 安装协议 353
29.5.3 NFS过程 354
29.5.4 UDP还是TCP 355
29.5.5 TCP上的NFS 355
29.6 NFS实例 356
29.6.1 简单的例子:读一个文件 356
29.6.2 简单的例子:创建一个目录 357
29.6.3 无状态 358
29.6.4 例子:服务器崩溃 358
29.6.5 等幂过程 360
29.7 第3版的NFS 360
29.8 小结 361
第30章 其他的TCP/IP应用程序 363
30.1 引言 363
30.2 Finger协议 363
30.3 Whois协议 364
30.4 Archie、WAIS、Gopher、Veronica
和WWW 366
30.4.1 Archie 366
30.4.2 WAIS 366
30.4.3 Gopher 366
30.4.4 Veronica 366
30.4.5 万维网WWW 367
30.5 X窗口系统 367
30.5.1 Xscope程序 368
30.5.2 LBX: 低带宽X 370
30.6 小结 370
附录A tcpdump程序 371
附录B 计算机时钟 376
附录C sock程序 378
附录D 部分习题的解答 381
附录E 配置选项 395
附录F 可以免费获得的源代码 406
参考文献 409
缩略语 420
2011-12-07
onvif 协议测试工具(version 1.02.3) Onvif_Test_Tool_v1.02.3
ONVIF 协议测试工具,1.02.3的版本 这个版本比 v1.0.1.16要好很多,功能比较强大
2011-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人