目录 1
前言 1
第1章 导论 1
1.1 Lean计划 1
1.2 入门 1
1.2.1 网络配置 2
1.2.2 编译器配置 3
1.2.3 其他PICmicro?编译器 3
1.3 软件介绍 4
1.4 网络硬件 4
1.4.2 网络硬件特征 5
1.4.1 串行硬件特征 5
1.5 设备驱动程序 6
1.5.1 串行驱动程序要求 6
1.5.2 以太网驱动程序要求 8
1.5.3 通用的驱动程序函数 10
1.6 配置文件格式 11
1.7 处理计时器 12
1.8 状态机 15
1.9 缓冲 18
1.9.1 FITO缓冲区 18
1.9.2 多边形缓冲区 24
1.10 编码约定 25
1.10.1 数据类型 25
1.10.2 源代码格式 26
2.1 概述 29
2.2 协议 29
第2章 协议介绍:SCRATCHP 29
2.3 SCRATCHP服务 31
2.4 逻辑连接 33
2.4.1 打开和关闭连接 33
2.4.2 连接中的数据流 33
2.5 数据包的格式 35
2.6 寻址 39
2.7 协议标识 40
2.7.1 多路技术和缓冲 40
2.8 接收和发送 41
2.7.2 字节交换 41
2.9 实现 45
2.9.1 ident命令 45
2.9.2 连接 49
2.10 小结 63
2.10.1 源文件 63
2.10.2 SCRATCHP工具 64
第3章 网络寻址和调试 65
3.1 概述 65
3.2 互联网 65
3.3 IP地址 67
3.4.2 以太网寻址 68
3.4.1 SLIP寻址 68
3.4 地址解析 68
3.5 ARP扫描器 70
3.5.1 实现 70
3.5.2 节点 71
3.5.3 命令行处理 71
3.5.4 配置文件和网络初始化 73
3.8.2 802.3 SNAP的操作 74
3.5.5 主循环 74
3.9 小结 74
3.5.6 数据包检查和格式化 75
3.6 在网络调试中使用ARPSCAN 76
3.6.1 协议分析器 77
3.6.2 示波器 78
3.6.3 NETMON网络监视器 79
3.7 以太网2 81
3.8 IEEE 802.3网络 82
3.8.1 802.3 SNAP支持 83
3.9.1 源文件 85
3.9.2 ARPSCAN工具 85
3.9.3 NETMON工具 86
第4章 网络接口:IP和ICMP 87
4.1 概述 87
4.2 TCP/IP栈 87
4.2.1 IP数据报 88
4.2.2 IP报文头 91
4.2.3 IP的实现 92
4.3 ICMP 100
4.4 ping实现 102
4.4.1 主程序 103
4.4.2 传输函数 106
4.4.3 接收函数 107
4.4.4 发送方地址 109
4.4.5 ping操作 110
4.5 路由器实现 111
4.5.1 接口 111
4.5.2 路由算法 113
4.5.4 路由动作 118
4.5.3 主循环 118
4.6 小结 120
4.6.1 源文件 120
4.6.2 ping工具 121
4.6.3 路由器工具 121
第5章 用户数据报协议:UDP 123
5.1 概述 123
5.2 端口和套接字 123
5.2.1 知名端口 124
5.2.2 套接字 125
5.3 数据报格式 125
5.4.1 伪IP头 127
5.4 UDP校验和 127
5.4.2 使UDP校验和失效 128
5.5 UDP工具 129
5.5.1 实现 129
5.5.2 使用datagram工具进行试验 136
5.6 小结 138
5.6.1 源文件 138
5.6.2 datagram工具 139
第6章 传输控制协议:TCP 141
6.1 概述 141
6.2 TCP概念 141
6.2.1 序列号和确认号 143
6.2.2 TCP状态机 146
6.2.3 段格式 150
6.2.4 TCP选项 152
6.3 TCP实现 153
6.3.1 TCP状态 153
6.3.2 段的接收和传输 153
6.3.3 套接字数据 157
6.3.4 序列和确认值 158
6.3.5 TCP状态机 159
6.3.6 接收段的多路输出选择器 168
6.3.7 重新传输 169
6.4.2 选项协商 171
6.4.1 网络虚拟终端——NVT 171
6.4 TCP应用——Telnet 171
6.5 Telnet的实现 172
6.5.1 TCP回调 173
6.5.2 Telnet客户端初始化 173
6.5.3 主循环 175
6.5.4 关闭连接 176
6.5.5 轮询 177
6.5.6 Telnet显示 177
6.5.7 Telnet客户端回调 178
6.5.8 Telnet服务器回调 179
6.6.1 daytime协议 181
6.6 使用Telnet 181
6.6.2 丢弃数据帧 183
6.7 小结 185
6.7.1 源文件 185
6.7.2 Telent工具 186
第7章 超文本传输协议:HTTP 187
7.1 概述 187
7.2 HTTP中的GET方法 187
7.2.1 请求 187
7.2.2 应答 188
7.2.3 内容类型 189
7.3 简单Web服务器 190
7.3.1 Web服务 190
7.2.4 文件扩展名 190
7.3.2 HTTP头测试 195
7.4 HTML介绍 196
7.4.1 HTML标签 196
7.4.2 HTML文档 197
7.4.3 可点击的文件目录 198
7.4.4 实现 199
7.4.5 缓冲区溢出 203
7.5 状态机实现 203
7.5.1 图形表格 206
7.5.2 堆叠的图形化数据 209
7.5.3 图形化指示器 210
7.6 小结 212
7.6.1 源文件 212
7.6.2 Webserve工具 213
第8章 嵌入式网关接口:EGI 215
8.1 概述 215
8.2 交互显示 215
8.2.1 开关和电灯 215
8.2.2 开关和电灯组 216
8.3 标准CGI接口 220
8.3.1 Linux CGI 220
8.3.2 DOS嵌入式网关接口 222
8.4.1 应用相关代码 225
8.4 EGI实现 225
8.4.2 URL解码 228
8.4.3 查找EGI处理程序 230
8.4.4 交互式的开关和电灯 233
8.4.5 交互式模拟控制 237
8.5 小结 241
8.5.1 源文件 241
8.5.2 WEB_EGI工具 242
第9章 微型Web服务器设计 243
9.1 概述 243
9.2 微控制器的软件开发 243
9.3.1 PIC16C76/16F876 244
9.3 硬件 244
9.3.2 外存储器 246
9.3.3 网络接口 246
9.4 开发环境 247
9.4.1 编译器 247
9.4.2 模拟器或调试器 247
9.5 软件技巧 248
9.5.1 RAM的限制 248
9.5.2 校验和 249
9.5.3 数据接收 249
9.5.4 阻塞 250
9.6 Web服务器协议 251
9.6.1 HTTP请求 251
9.6.3 TCP 252
9.6.2 HTTP应答 252
9.6.4 IP 258
9.6.5 ICMP 259
9.6.6 SLIP 260
9.6.7 调制解调器驱动程序 260
9.7 小结 261
第10章 PICmicro?微控制器上的TCP/IP 263
10.1 概述 263
10.2 外围设备 263
10.2.1 外存储器 263
10.2.3 温度传感器 264
10.2.2 数字输出 264
10.2.4 数字输入 265
10.2.5 实时时钟 265
10.3 块图 265
10.4 电路图 266
10.5 低层软件 267
10.5.1 CPU标识 267
10.5.2 数据类型 268
10.5.3 串行驱动程序 268
10.5.4 I2C驱动程序 269
10.5.5 并行I/O 271
10.5.6 计时器 272
10.6.1 SLIP接收 273
10.6 SLIP和IP驱动程序 273
10.6.2 SLIP传输 276
10.6.3 调制解调器模拟 279
10.6.4 协议解析 279
10.6.5 IP接收 285
10.6.6 IP传输 287
10.7 ICMP 288
10.7.1 ICMP接收 288
10.7.2 ICMP传输 289
10.7.3 pinging PWEB 290
10.8 TCP 290
10.8.1 TCP接收 291
10.8.3 TCP序列发生器 293
10.8.2 TCP传输 293
10.8.4 daytime服务 295
10.9 小结 297
第11章 PWEB:PICmicro上的小型Web服务器 299
11.1 概述 299
11.2 Web服务器 299
11.2.1 简单文本服务器 300
11.2.2 TCP事务日志 302
11.3 ROM文件系统 303
11.3.1 E2ROM访问周期 303
11.3.2 文件系统结构 304
11.3.3 E2ROM编程 305
11.3.4 在ROM中寻找一个文件 310
11.3.5 改进后的HTTP处理程序 314
11.4 使用PWEB服务器 315
11.5 动态内容 317
11.5.1 变量置换 317
11.5.2 校验和平衡 318
11.5.3 平衡变量 319
11.6 动态网页 320
11.6.1 HTML表单变量 323
11.6.2 数字输出 325
11.6.3 布尔变量置换 326
11.6.4 数字输入 327
11.6.5 PWEB变量置换代码 328
11.6.6 状态页 329
11.7 小结 331
11.7.1 PWEB 331
11.7.2 WEBROM源文件 331
11.7.3 WEBROM工具 331
第12章 ChipWeb——微型以太网Web服务器 333
12.1 概述 333
12.2 硬件 333
12.2.1 演示板 333
12.2.2 以太网硬件 334
12.2.3 微控制器接口 336
12.2.4 LCD接口 336
12.2.5 其他外部设备 337
12.3.1 NIC初始化 338
12.3 以太网驱动程序 338
12.3.2 访问数据包缓冲区 339
12.3.3 数据包接收 341
12.3.4 数据包分析 342
12.3.5 数据包传输 344
12.4 LCD驱动程序 345
12.4.1 LCD数据传输 345
12.4.2 LCD初始化 347
12.4.3 LCD字符 347
12.5 其他驱动程序 348
12.6.1 地址解析协议:ARP 349
12.6 协议 349
12.6.2 网际协议:IP 350
12.6.3 网际控制消息协议:ICMP 351
12.6.4 传输控制协议:TCP 352
12.6.5 超文本传输协议:HTTP 356
12.7 协议调试 359
12.8 用户接口 360
12.8.1 动态网页:HTML 360
12.8.2 状态显示框架 361
12.8.3 导航框架 362
12.8.4 LCD显示 364
12.9 配置 365
12.9.1 地址配置 366
12.9.2 网页下载 367
12.10 小结 370
第13章 点对点通信协议:PPP 373
13.1 概述 373
13.2 PPP设计 373
13.2.1 分帧 374
13.2.2 检错 374
13.2.3 转义序列 375
13.2.4 协商 375
13.3 协议的部件 376
13.3.1 部件报文头 376
13.3.2 选项格式 377
13.3.3 状态机 378
13.4 PPP协商实例 380
13.4.1 LCP 380
13.4.2 PAP 382
13.4.3 IPCP 383
13.4.4 IP数据 385
13.4.5 关闭连接 385
13.5 PPP实现 386
13.5.1 接收和传输 386
13.5.2 消息解码 389
13.6 小结 392
14.2 客户端-服务器网络 393
14.1 概述 393
第14章 UDP客户端、服务器和快速数据传输 393
14.3 对等网 394
14.4 不只是Web服务器 395
14.5 缓冲改进 395
14.5.1 阴影缓冲区 395
14.5.2 缓冲边界 396
14.5.3 接收缓冲的实现 397
14.5.4 传输缓冲实现 400
14.6 IP和ICMP处理 402
14.6.1 IP处理程序 402
14.6.2 ICMP处理程序 403
14.7.1 daytime和echo服务器 405
14.7 UDP服务器 405
14.7.2 UDP传输 407
14.8 UDP时间客户端 408
14.8.1 UDP客户方法 408
14.8.2 客户端地址解析 409
14.8.3 客户端UDP消息 412
14.9 快速数据传输 413
14.10 硬件 414
14.10.1 视频标准 415
14.10.2 视频捕获 415
14.10.3 微控制器接口 416
14.11.1 数据格式 417
14.11 软件 417
14.11.2 微控制器软件 418
14.11.3 客户端软件 419
14.12 小结 422
第15章 动态主机配置协议:DHCP 425
15.1 概述 425
15.2 DHCP方法论 425
15.2.1 操作的序列 425
15.2.2 计时 426
15.2.3 消息格式 427
15.2.5 客户名称 428
15.2.4 选项 428
15.3 事务示例 430
15.3.1 探查 430
15.3.2 赋予 430
15.3.3 请求 431
15.3.4 确认 432
15.4 DHCP实现 433
15.4.1 状态机 433
15.4.2 DHCP传输 435
15.4.3 DHCP接受 437
15.5 小结 439
16.1 概述 441
16.2 TCP客户端技术 441
第16章 TCP客户端、SMTP和POP3邮件 441
16.2.1 二级NIC传输缓冲区 442
16.2.2 NIC RAM的分配 442
16.2.3 以太网驱动程序的更改 443
16.3 TCP客户端实现 445
16.3.1 套接字定义 445
16.3.2 启动 446
16.3.3 接收处理程序 447
16.3.4 状态机 448
16.3.5 超时 451
16.4 SMTP邮件客户端 453
16.4.1 SMTP事务 453
16.3.6 传输 453
16.4.2 SMTP实现 456
16.4.3 开始邮件传输 458
16.5 POP3邮件客户端 459
16.5.1 POP3事务 459
16.5.2 POP3行缓冲 461
16.5.3 POP3实现 462
16.5.4 开始邮件轮询 465
16.6 小结 465
附录A 配置说明 467
附录B 资源 471
附录C 光盘上的软件 475
附录D PICmicro?相关问题 481