新書推薦:
《
控制权视角下的家族企业管理与传承
》
售價:NT$
398.0
《
冯友兰和青年谈心系列
》
售價:NT$
762.0
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:NT$
352.0
《
认知行为疗法:心理咨询的顶层设计
》
售價:NT$
454.0
《
FANUC工业机器人装调与维修
》
售價:NT$
454.0
《
吕著中国通史
》
售價:NT$
286.0
《
爱琴海的光芒 : 千年古希腊文明
》
售價:NT$
908.0
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:NT$
301.0
|
編輯推薦: |
骨灰级一线嵌入式专家“五木”呕心力作
基于STM32实战环境,直观感受各层协议在嵌入式设备组网过程中的实际应用,学习TCPIP不再是纸上淡兵
实用的STM32学习资料,**鲜的实战例程,轻松诙谐,简单直白
从协议栈原理及使用方法,到编程框架,讲解透彻
从性能与稳定性测试,到问题定位与调试,干货多多
|
內容簡介: |
本书面向网络TCPIP协议初学者以及大量嵌入式网络开发人员,从当下流行的嵌入式网络协议栈LwIP的源代码入手,详细讲解TCPIP协议的各层机制及其实现原理。同时,通过搭建简单的实验环境,本书还详细阐述LwIP在嵌入式设备组网过程中的移植过程、应用编程案例、编程框架、注意事项等。
本书共分为四大部分,第一部分讲解基于STM32平台下LwIP的移植过程,其中包括了LwIP代码组织结构与特点,以及LwIP裸机移植通用流程;第二部分,以LwIP源代码为基础,以网络数据包在协议栈内部的递交顺序做导向,结合TCPIP协议基本知识,依次讲解LwIP内核各个模块的实现机制,包括数据包管理、网络接口管理、ARP、IP、ICMP、UDP、TCP等;第三部分,讲解LwIP上层API实现机制,以及常见的网络应用程序结构以及编程方法,以及LwIP其他高级应用,如IGMP、DNS、DHCP等;第四部分,讲解内核调试、协议栈稳定性和性能、并发服务器设计等,以及LwIP在具体项目中的应用和实践过程,同时还包括了LwIP在实际应用中常见的问题及解决方法。
本书可作为TCPIP学习者的快速入门及精通的指导书籍,还可作为广大嵌入式网络开发人员的参考手册。
|
關於作者: |
朱升林非著名码农,法号及网名“老衲五木”,风靡网络的电子书《LwIP协议栈源码详解——TCPIP协议的实现》及热卖图书《嵌入式网络那些事:LwIP协议深度剖析与实战演练》作者。对TCPIP有丰富的实践经验和深入独到的理解,长期从事物联网热点技术如(ZigBee、Wi-Fi、HF RFID、UHF RFID)的研究与应用。目前在国内某知名通信公司从事软件研发工作。
|
目錄:
|
前言
第1章实验平台背后的故事
1.1嵌入式网络技术一统江湖
1.1.1嵌入式网络的发展现状
1.1.2嵌入式LwIP协议栈
1.2基于STM32的实验平台浅析
1.2.1STM32处理器的兴起
1.2.2实验平台简介
1.2.3网卡连接情况
1.3本书主要内容
第2章LwIP协议栈初体验
2.1庐山真面目之LwIP代码结构
2.1.1LwIP简介
2.1.2源代码结构
2.2怎样用SI阅读源代码
2.3千里之行从LwIP框架做起
2.3.1协议栈分层思想
2.3.2进程模型
2.3.3协议栈编程接口
第3章LwIP移植初探--无操作系统模拟层
3.1移植说明
3.2移植头文件
3.3网卡驱动编写
3.4安装系统时钟
3.5协议栈初始化
3.6查询接收数据包
3.7数据包中断接收
3.8如何定位Ping问题
第4章内核动力之源--内存管理
4.1内存管理背后的故事
4.1.1内存管理概述
4.1.2常见内存分配策略
4.2以不变应万变--动态内存池
4.2.1数据结构描述
4.2.2函数实现
4.3见招拆招--动态内存堆
4.3.1数据结构描述
4.3.2函数实现
4.4其他内存分配策略
第5章网络数据包--内核血液
5.1数据包管理的必要性
5.1.1LwIP的分层特点
5.1.2协议进程模型
5.2数据包管理原理大揭密
5.2.1数据包结构pbuf
5.2.2pbuf的类型
5.2.3数据包申请函数
5.2.4数据包释放函数
5.2.5其他数据包操作函数
第6章网络抽水机--网络接口管理
6.1引言
6.2接口管理的始与末
6.2.1数据结构
6.2.2函数实现
6.3特殊的网络接口--环回
6.3.1实现原理
6.3.2应用程序环回通信实战
6.4如何动态更改IP地址
6.4.1重要函数
6.4.2实战程序
第7章漫漫鹊桥路--ARP协议
7.1ARP协议之扫盲篇
7.1.1物理地址与网络地址
7.1.2ARP协议的本质
7.2关键数据结构
7.2.1ARP表
7.2.2ARP报文
7.3ARP之数据包引进来
7.3.1以太网数据包递交
7.3.2ARP数据包处理
7.3.3ARP攻击
7.3.4ARP缓存表的更新
7.4ARP之数据包走出去
7.4.1ARP层数据处理总流程
7.4.2广播包与多播包的发送
7.4.3单播包的发送
第8章互联网身份证--网际协议(IP)
8.1IP协议之扫盲班
8.1.1概述
8.1.2IP地址
8.1.3特殊IP地址
8.1.4子网划分与子网掩码
8.1.5网络地址转换(NAT)
8.1.6单播、多播与广播
8.2什么是IP数据报
8.2.1数据报组成结构
8.2.2数据结构
8.3IP数据报之走出去
8.3.1发送数据报
8.3.2数据报分片
8.4IP数据报之引进来
8.4.1数据报接收
8.4.2分片重装数据结构
8.4.3分片重装函数
8.4.4分片插入与检查
第9章互联网医生--ICMP协议
9.1ICMP扫盲班
9.1.1ICMP协议
9.1.2报文交付
9.1.3报文类型
9.1.4报文格式
9.1.5差错报文
9.1.6查询报文
9.2ICMP实现大起底
9.2.1数据结构
9.2.2发送差错报文
9.2.3ICMP报文的处理
9.2.4ping命令
9.2.5ICMP洪水
9.3如何发送Ping请求
9.3.1实现原理--raw_pcb
9.3.2发送ping请求
9.3.3测试结果
第10章RawAPI无招胜有招之UDP篇
10.1UDP协议扫盲班
10.1.1传输层协议
10.1.2UDP协议
10.1.3端口号
10.1.4UDP报文的交付
10.1.5UDP报文格式
10.1.6UDP伪首部与校验和
10.2UDP数据结构详解
10.2.1报文首部结构
10.2.2控制块
10.3UDPRAW编程秘籍
10.3.1使用UDP编程
10.3.2新建控制块
10.3.3绑定控制块
10.3.4连接控制块
10.3.5其他控制块操作函数
10.4UDPRAW编程初体验
10.4.1UDP编程秘诀
10.4.2回送程序
10.4.3测试结果
10.4.4回调编程的缺陷
10.5内核报文处理细节
10.5.1报文的发送
10.5.2报文接收与递交
10.6挑战更复杂的UDP应用
10.6.1使用TFTP传送文件
10.6.2应用程序实现
10.6.3TFTP测试结果
第11章RawAPI无招胜有招之TCP篇
11.1TCP协议大揭秘
11.1.1TCP的必要性
11.1.2TCP的特性
11.1.3连接的定义
11.1.4数据流编号
11.1.5滑动窗口
11.2TCP入门--报文
11.2.1报文格式
11.2.2TCP选项
11.2.3紧急数据
11.2.4强迫数据交互
11.2.5报文首部数据结构
11.3TCP基础--连接
11.3.1建立连接
11.3.2断开连接
11.3.3复位连接
11.3.4TCP状态转换图
11.3.5特殊的状态转换
11.4TCP核心--控制块
11.4.1控制块数据结构
11.4.2控制块链表
11.4.3接收窗口
11.4.4发送窗口
11.5TCPRAW编程秘诀
11.5.1控制块新建
11.5.2控制块绑定
11.5.3控制块侦听
11.5.4控制块连接
11.5.5发送数据
11.5.6关闭连接
11.5.7其他函数
11.6TCPRAW编程初体验
11.6.1TCP编程本质
11.6.2HTTP服务器
11.6.3打不死的客户端
11.7TCP输出处理细节放送
11.7.1报文段缓冲
11.7.2报文段构建
11.7.3报文段发送
11.8TCP输入处理细节放送
11.8.1TCP层函数调用流程
11.8.2报文输入
11.8.3TIME_WAIT状态的报文处理
11.8.4LISTEN状态的报文处理
11.8.5SYN攻击
11.8.6TCP状态机函数
11.8.7TCP数据输入
11.9可靠的传输服务
11.9.1超时重传与RTT估计
11.9.2慢启动与拥塞避免
11.9.3快速重传与快速恢复
11.9.4糊涂窗口与避免
11.9.5零窗口探查
11.9.6保活机制
11.9.7TCP定时器
11.10挑战更复杂的TCP应用
11.10.1Telnet服务器
11.10.2测试结果
第12章LwIP乾坤大挪移--操作系统
模拟层
12.1模拟层是怎样炼成的
12.1.1移植综述
12.1.2添加文件
12.1.3修改头文件lwipopts.h
12.1.4头文件sys_arch.h
12.1.5全局变量与初始化
12.1.6信号量函数
12.1.7邮箱函数
12.1.8创建新进程
12.1.9修改内核初始化函数
12.1.10移植结果测试
12.2SequentialAPI牛刀小试
12.2.1回显服务器
12.2.2Web服务器
12.2.3操作系统下的rawAPI
第13章SequentialAPI大显身手
13.1探秘内核定时事件
13.1.1定时结构
13.1.2定时链表
13.1.3内核进程
13.1.4处理定时事件
13.2论消息机制的重要性
13.2.1消息结构
13.2.2数据包消息
13.2.3协议栈API实现
13.2.4API消息
13.3协议栈接口全搜罗
13.3.1用户数据缓冲netbuf
13.3.2如何操作数据缓冲
13.3.3连接结构netconn
13.3.4内核回调接口
13.3.5协议栈API秘籍
13.4SequentialAPI大会战
13.4.1网页控制设备
13.4.2UDP性能测试
13.4.3TCP性能测试
13.4.4并发服务器
第14章万剑归宗之Socket编程
14.1套接字接口来龙去脉
14.1.1如何实现Socket
14.1.2套接字函数秘籍
14.2Socket实战大串烧
14.2.1智能的TCP客户端
14.2.2UDP时间服务器
14.2.3Winsock客户端设计
14.3基于Select的并发服务器
14.3.1神奇的Select函数
14.3.2Select原理全解析
14.3.3Select实战--并发服务器
第15章LwIP工程实战--物联网关
15.1项目背景
15.1.1中央空调系统与温控器
15.1.2新需求的出现
15.1.3要做什么与如何去做
15.2智能网络温控器
15.2.1温控器实现方案
15.2.2ModbusTCP服务器
15.3物联网关设计
15.3.1物联网关实现方案
15.3.2网关服务器
15.4现场调试与测试
15.4.1温控器测试
15.4.2物联网关测试
第16章天下之术皆为我用--LwIP高级篇
16.1外网访问之道--域名解析
16.1.1域名系统(DNS)
16.1.2DNS牛刀小试
16.1.3下载外网数据
16.2如何自动分配IP地址--DHCP
16.2.1DHCP大讲堂
16.2.2DHCP之实现详解
16.2.3是骡子是马--遛遛DHCP
16.3如何实现组播--Internet组管理
16.3.1IGMP协议大讲堂
16.3.2IGMP组播实践
第17章最后的战役
17.1如何配置协议栈
17.1.1内核配置文件opt.h
17.1.2如何提高TCP性能
17.2内核调试常用方法
17.2.1内核日志输出
17.2.2网络调试助手
17.2.3Wireshark抓包
17.3为了更好的明天
17.3.1常见移植问题
17.3.2常见应用问题
17.4故事结局
参考文献
|
內容試閱:
|
理论与实践并重。每章均配有实战例程,读者能直观感受到各层协议在嵌入式设备组网过程中的实际应用,学习TCPIP不再是纸上谈兵。基于目前流行的STM32实验平台,可以帮助开发者快速上手嵌入式网络编程,本书的许多实验都可以抽象成一个基本的编程框架,学习者在学习的同时可以对框架进行填充裁剪等,基于框架快速完成应用程序开发。
目的明确,实用性强。本书可以作为嵌入式网络开发人员的指导手册,提供的许多应用程序可以直接用在开发项目中,缩短开发周期,节省开发成本;本书还会介绍并发服务器设计、协议栈性能测试、协议栈调试手段等知识,可以帮助开发者处理项目调试遇到的各种问题。
LwIP协议栈全部用C语言写成,所有代码对用户可见,用户可以宏观地把握整个协议的代码组织结构。在本书中,通过在实验板上移植、使用协议栈,读者可以清楚地知道TCPIP协议内部各个机制的实现方法以及不同参数设置对协议栈内核性能的影响,比如:如何自行配置TCP发送超时间隔与重发次数以满足特定场合的需求,又如用户可否根据实际使用情况更改TCP状态机以提高内核效率等。通过各个实验,读者可以清楚地看到整个协议的运行过程,加深对协议的理解。
组织结构
本书以开源TCPIP协议栈——LwIP的源代码为基础,详细为读者讲解TCPIP协议的内部各层结构与实现细节,既包括ARP、ICMP、IGMP、IP、UDP、TCP等基本协议知识,也包括DHCP、DNS等高级应用知识,以LwIP为起点学习TCPIP,将为广大读者各方面的学习创造捷径。同时,LwIP代码组织和实验平台搭建简单,读者可以方便地进行协议栈内部的相关实验。
如何简单快速地在当前流行的STM32处理器上完成协议栈移植,如何快速上手协议栈应用编程,如何移植现有的通用网络应用程序是许多读者关心的重点。LwIP如何移植,有没有一套普遍适用的流程,各种编程接口的调用规则与实际使用例子,都是本书中将涉及到的内容。本书的许多应用程序代码可以为开发者提供一个普遍使用的程序框架,开发者只需要在这个基础上做简单改动就可以编写出适合自己的网络应用程序。对于有一定经验的LwIP开发者来说,可能更加关注于内核调试、协议栈稳定性和性能、并发服务器设计等方面的内容,也更期望看到LwIP在具体项目中的应用和实践过程,这些也都是本书将涉及的内容。
TCPIP技术是互联网技术发展的基础,在各软硬件IT企业招聘面试中,TCPIP相关知识成为面试官青睐的问题,对于广大学子来说,精通TCPIP相关知识无疑将为自己打开一道成功择业的大门。但目前很多人想学习TCP却无处下手,这也成为许多初学者面临的问题。通过本书,从基于STM32的网络实验入手,深入贯通TCPIP理论及其应用,通过学习,读者可以对协议栈、TCPIP细节有很好的把握;另一方面,嵌入式系统的组网技术是目前流行的技术,嵌入式网络方向也是未来的热点发展方向,本书将从嵌入式裸机出发,向读者讲解网络协议栈移植过程以及应用编程细节,同时也包括了一些开发过程中常见的各种问题及解决方法,因此,对LwIP应用开发者来说,本书将是一本重要的指导手册。
编者与致谢
本书由朱升林、欧阳骏、杨晶著,粟思科审。最后,笔者想感谢一年多来一直陪伴和帮助我的人,没有你们的帮助和付出,这本书不会这么顺利地完成,因为你们的存在,使得这段时光更加珍贵。
……
|
|