当前位置:主页 > 计算机电子书 > 网络与数据通信 > 嵌入式网络下载
嵌入式网络那些事:LwIP协议深度剖析与实战演练

嵌入式网络那些事:LwIP协议深度剖析与实战演练 PDF 高清版

  • 更新:2019-07-28
  • 大小:40.9 MB
  • 类别:嵌入式网络
  • 作者:朱升林
  • 出版:水利水电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

嵌入式网络那些事 PDF

《嵌入式网络那些事:LwIP协议深度剖析与实战演练》面向网络TCP/IP协议初学者以及大量嵌入式网络开发人员,从当下流行的嵌入式网络协议栈LwIP的源代码入手,详细讲解TCP/IP协议的各层机制及其实现原理。同时,通过搭建简单的实验环境,还详细阐述LwIP在嵌入式设备组网过程中的移植过程、应用编程案例、编程框架、注意事项等。

目录

  • 第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 故事结局
  • 参考文献

资源获取

资源地址1:https://pan.baidu.com/s/1LS7acjo3OJ-PJ_MrLSV5aQ

相关资源

网友留言