标题：嵌入式网络那些事
基本介绍

  嵌入式网络那些事
副标题: LwIP协议深度剖析与实战演练[1]出版社: 中国水利水电出版社
出版年: 2012-9
页数: 473
定价: 68.00元
ISBN: 978-7517-000-594
内容简介

《嵌入式网络那些事：LwIP协议深度剖析与实战演练》面向网络TCP/IP协议初学者以及大量嵌入式网络开发人员，从当下流行的嵌入式网络协议栈LwIP的源代码入手，详细讲解TCP/IP协议的各层机制及其实现原理。同时，通过搭建简单的实验环境，还详细阐述LwIP在嵌入式设备组网过程中的移植过程、应用编程案例、编程框架、注意事项等。
本书可以作为TCP/IP学习者的快速入门及精通的指导书籍，配以简易的实验平台及专门的实验例程，读者可以轻松学习TCP/IP协议内的各种机制，通过实验验证，达到理论与实践结合的目的；对于嵌入式初学者来说，本书具有相关的实验平台，通过对实验平台的学习与使用，初学者能快速实现嵌入式入门；最后，本书可以作为广大嵌入式网络开发人员的参考手册。
目录

第1章 故事前传[1]
1.1 背景知识
1.1.1 嵌入式网络概述
1.1.2 写作背景
1.1.3 几个疑问
1.2 TCP/IP扫盲班
1.2.1 OSI模型
1.2.2 TCP/IP协议
1.2.3 OSI模型 VS
1.2.4 嵌入式TCP/IP协议栈
1.3 旅行集结号
1.3.1 实验环境说明
1.3.2 本书内容概述
1.3.3 一起出发
第2章 有备而无患
2.1 传说中的ARM微处理器
2.1.1 背景知识
2.1.2 存储器组织结构
2.1.3 指令系统
2.1.4 数据类型与存储格式
2.1.5 处理器状态与处理器模式
2.1.6 寄存器组织
2.1.7 异常处理
2.2 S3C44B0X初体验
2.2.1 简介
2.2.2 存储管理器
2.2.3 中断控制器
2.2.4 其他模块
2.3 ARM汇编真经
2.3.1 简介
2.3.2 ARM指令集编码格式
2.3.3 ARM寻址方式
2.3.4 ARM指令集简介
2.3.5 ARM汇编语言
第3章 让板子跑起来
3.1 ARM开发工具
3.1.1 ADS简介
3.1.2 ARM汇编器
3.1.3 ARM编译器
3.1.4 ARM连接器
3.2 程序的调试
3.2.1 几种调试方式
3.2.2 AXD调试器
3.2.3 ARMulator的使用
3.3 编写启动代码
3.3.1 开发板结构
3.3.2 启动代码讲解
3.3.3 几个测试程序
第4章 快马加鞭
4.1 嵌入式实时操作系统
4.1.1 概述
4.1.2 μC/OS-II的文件结构
4.1.3 μC/OS-II中的任务
4.1.4 就绪任务的管理
4.1.5 任务堆栈
4.2 移植μC/OS-II实时操作系统
4.2.1 概述
4.2.2 编写OS_CPU.H
4.2.3 编写OS_CPU_C.C
4.2.4 编写OS_CPU_A.S
4.3 测试程序
4.3.1 系统时钟
4.3.2 第一个测试程序
4.3.3 第二个测试程序
第5章 无操作系统模拟层LwIP的移植
5.1 LwIP综述
5.1.1 简介
5.1.2 用SI阅读源代码
5.2 移植工作
5.2.1 移植头文件
5.2.2 RTL8019AS网卡
5.2.3 编写网卡驱动程序
5.3 测试程序
5.3.1 协议栈初始化
5.3.2 数据包的查询接收
5.3.3 数据包的中断接收
5.3.4 一个简单的TCP服务器
5.3.5 移植小结
第6章 动态内存管理
6.1 背景知识
6.1.1 内存管理概述
6.1.2 常见内存分配策略
6.2 动态内存池
6.2.1 数据结构描述
6.2.2 函数实现
6.3 动态内存堆
6.3.1 数据结构描述
6.3.2 函数实现
6.4 其他内存分配策略
第7章 数据包管理
7.1 预备知识
7.1.1 LwIP的分层特点
7.1.2 协议进程模型
7.2 数据包管理
7.2.1 数据包结构pbuf
7.2.2 pbuf的类型
7.2.3 数据包申请函数
7.2.4 数据包释放函数
7.2.5 其他数据包操作函数
第8章 网络接口管理
8.1 引言
8.2 网络接口结构
8.2.1 数据结构
8.2.2 函数实现
8.3 环回接口
8.3.1 相关函数
8.3.2 实验程序
第9章 ARP协议
9.1 ARP协议简介
9.1.1 物理地址与网络地址
9.1.2 ARP协议的本质
9.2 数据结构
9.2.1 ARP表
9.2.2 ARP报文
9.3 ARP层数据包输入
9.3.1 以太网数据包递交
9.3.2 ARP数据包处理
9.3.3 ARP攻击
9.3.4 ARP缓存表的更新
9.4 ARP层数据包输出
9.4.1 ARP层数据处理总流程
9.4.2 广播包与多播包的发送
9.4.3 单播包的发送
第10章 网际协议（IP）
10.1 相关知识
10.1.1 概述
10.1.2 IP地址
10.1.3 特殊IP地址
10.1.4 子网划分与子网掩码
10.1.5 网络地址转换（NAT）
10.1.6 单播、多播与广播
10.2 数据报
10.2.1 数据报组成结构
10.2.2 数据结构
10.3 IP层输出
10.3.1 发送数据报
10.3.2 数据报分片
10.4 IP层输入
10.4.1 数据报接收
10.4.2 分片重装数据结构
10.4.3 分片重装函数
10.4.4 分片插入与检查
第11章 网际控制报文协议（ICMP）
11.1 基本知识
11.1.1 ICMP协议
11.1.2 报文交付
11.1.3 报文类型
11.1.4 报文格式
11.1.5 差错报文
11.1.6 查询报文
11.2 ICMP的实现
11.2.1 数据结构
11.2.2 发送差错报文
11.2.3 ICMP报文的处理
11.2.4 ping命令
11.2.5 ICMP洪水
第12章 用户数据报协议（UDP）
12.1 背景知识
12.1.1 传输层协议
12.1.2 UDP协议
12.1.3 端口号
12.1.4 UDP报文的交付
12.1.5 UDP报文格式
12.1.6 UDP伪首部与校验和
12.2 UDP数据结构
12.2.1 报文首部结构
12.2.2 控制块
12.3 控制块操作函数
12.3.1 使用UDP编程
12.3.2 新建控制块
12.3.3 绑定控制块
12.3.4 连接控制块
12.3.5 其他控制块操作函数
12.4 报文处理函数
12.4.1 报文的发送
12.4.2 报文接收与递交
12.5 测试程序
12.5.1 回送程序
12.5.2 测试结果
12.5.3 回调编程的缺陷
第13章 传输控制协议（TCP）
13.1 协议简介
13.1.1 TCP的必要性
13.1.2 TCP的特性
13.1.3 连接的定义
13.1.4 数据流编号
13.1.5 滑动窗口
13.2 TCP报文
13.2.1 报文格式
13.2.2 TCP选项
13.2.3 紧急数据
13.2.4 强迫数据交互
13.2.5 报文首部数据结构
13.3 TCP连接
13.3.1 建立连接
13.3.2 断开连接
13.3.3 复位连接
13.3.4 TCP状态转换图
13.3.5 特殊的状态转换
13.4 TCP控制块
13.4.1 控制块数据结构
13.4.2 控制块链表
13.4.3 接收窗口
13.4.4 发送窗口
13.5 TCP编程函数
13.5.1 控制块新建
13.5.2 控制块绑定
13.5.3 控制块侦听
13.5.4 控制块连接
13.5.5 发送数据
13.5.6 关闭连接
13.5.7 其他函数
13.6 TCP输出处理
13.6.1 报文段缓冲
13.6.2 报文段构建
13.6.3 报文段发送
13.7 TCP输入处理
13.7.1 TCP层函数调用流程
13.7.2 报文输入
13.7.3 TIME_WAIT状态的报文处理
13.7.4 LISTEN状态的报文处理
13.7.5 SYN攻击
13.7.6 TCP状态机函数
13.7.7 TCP数据输入
13.8 可靠的传输服务
13.8.1 超时重传与RTT估计
13.8.2 慢启动与拥塞避免
13.8.3 快速重传与快速恢复
13.8.4 糊涂窗口与避免
13.8.5 零窗口探查
13.8.6 保活机制
13.8.7 TCP定时器
13.9 测试程序
13.9.1 Telnet服务器
13.9.2 测试结果
第14章 移植操作系统模拟层
14.1 移植过程
14.1.1 移植综述
14.1.2 添加文件
14.1.3 修改头文件lwipopts.h
14.1.4 头文件sys_arch.h
14.1.5 全局变量与初始化
14.1.6 信号量函数
14.1.7 邮箱函数
14.1.8 超时相关函数
14.1.9 创建新进程
14.2 测试程序
14.2.1 初始化函数
14.2.2 简单的HTTP服务器
14.2.3 测试结果
第15章 用户编程接口
15.1 定时事件
15.1.1 定时结构
15.1.2 定时链表
15.1.3 内核进程
15.1.4 处理定时事件
15.2 消息机制
15.2.1 消息结构
15.2.2 数据包消息
15.2.3 协议栈API实现
15.2.4 API消息
15.3 协议栈接口
15.3.1 用户数据缓冲netbuf
15.3.2 数据缓冲操作
15.3.3 连接结构netconn
15.3.4 内核回调接口
15.3.5 协议栈API函数
15.3.6 测试程序
15.4 套接字接口
15.4.1 socket的实现
15.4.2 套接字函数
15.4.3 测试程序
第16章 最后的战役
16.1 域名解析
16.1.1 域名系统（DNS）
16.1.2 测试程序
16.1.3 测试结果
16.2 动态主机配置
16.2.1 DHCP协议
16.2.2 测试程序
16.2.3 测试结果
16.3 Internet组管理
16.3.1 IGMP协议
16.3.2 测试程序
16.3.3 测试结果
16.4 终结篇
16.4.1 常见问题及解决方法
16.4.2 故事结局
参考文献