LWIP
专业游手好闲
这个作者很懒,什么都没留下…
展开
-
lwIP TCP/IP 协议栈笔记之一:概述和目录结构详解
目录1. lwIP概述1.1 TCP/IP 协议简介1.2 lwIP 简介1.2.1 目录结构 lwip-2.1.21.2.2 lwip-2.1.2/src2 目录结构详解2.1 /doc2.2 /test2.3 /src2.3.1 APIs2.3.2 /src/api2.3.3 /src/apps2.3.4 /src/core2.3.5 /...原创 2019-07-30 17:34:47 · 12637 阅读 · 2 评论 -
lwIP TCP/IP 协议栈笔记之十三: ICMP协议
目录1. 简介2. ICMP 报文结构3. ICMP 报文类型3.1 ICMP 差错报告报文3.1.1 目的不可达3.1.2源站抑制3.1.3 重定向3.1.4 超时3.1.5参数错误3.2 ICMP 查询报文4. LwIP 中的ICMP 实现4.1 ICMP 报文数据结构4.2 发送ICMP 差错报文4.3 处理 ICMP 报文1...原创 2019-09-02 16:06:46 · 1681 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之十四: UDP协议
目录1. UDP 协议简介2. UDP 常用端口号3. UDP 报文4. UDP 报文的数据结构4.1 UDP 报文首部结构体4.2 UDP 控制块5.UDP 报文发送6. UDP 报文接收UDP 是一个简单的数据报的传输层协议:应用线程的每个输出数据都正好产生一个UDP 数据报,并组装成一份待发送的 IP 数据报。1. UDP 协议简介UDP 是Us...原创 2019-09-02 17:45:22 · 2011 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之十五: TCP协议
目录1. TCP 服务简介2. TCP 的特性2.1 连接机制2.2 确认与重传2.3 缓冲机制2.4 全双工通信2.5 流量控制2.6 差错控制2.7 拥塞控制3. 端口号的概念4. TCP 报文段结构4.1 TCP 报文段的封装4.2TCP 报文段格式5. TCP 连接5.1 “三次握手”建立连接5.2 “四次挥手”终止连接...原创 2019-09-06 17:11:33 · 2702 阅读 · 1 评论 -
lwIP TCP/IP 协议栈笔记之十六: NETCONN 接口编程
目录1. netbuf 结构体2. netbuf 相关函数说明2.1 netbuf_new()2.2 netbuf_delete()2.3 netbuf_alloc()2.4 netbuf_free()2.5 netbuf_ref()2.6 netbuf_chain()2.7 netbuf_data()2.8 netbuf_next()与netbuf_fir...原创 2019-09-16 12:33:41 · 13964 阅读 · 7 评论 -
lwIP TCP/IP 协议栈笔记之十八: Socket接口编程
目录1. Socket 概述2. LwIP 中的socket3. Socket API3.1 socket()3.2 bind()3.3 connect()3.4 listen()3.5 accept()3.6 read()、recv()、recvfrom()3.7 sendto()3.8 send()3.9 write()3.10 close(...原创 2019-09-18 23:18:33 · 10849 阅读 · 4 评论 -
lwIP TCP/IP 协议栈笔记之十七: NETCONN 接口编程IPV6
目录1. 初识IPv62. IPv6地址格式3. LwIP TCP client 示例1. 初识IPv6LwIP IPv6 本不在本次计划中,正好遇到,特此简单记录一下。下图为PC端 IP信息,可以看到IPv6和IPv4地址都在用,随着IPv4资源的日益匮乏,IPv6的逐步在替代使用中,2017年 国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》。...原创 2019-09-18 16:56:26 · 4001 阅读 · 8 评论 -
lwIP TCP/IP 协议栈笔记之十九: JPerf 工具测试网速
目录1. iPerf 与JPerf2. 测试网络速度2.1 获取JPerf 网络测速工具2.2 测试开发板接收速度(NETCONN API)2.3 测试开发板接收速度(Socket API)2.4 测试开发板发送速度(NETCONN API)2.5 测试开发板发送速度(Socket API)2.6. 测试开发板收发速度(apps\lwiperf)3.提高LwI...原创 2019-09-19 10:14:29 · 4918 阅读 · 1 评论 -
lwIP TCP/IP 协议栈笔记之二十: MQTT 移植
目录1. MQTT 协议简介2. 移植MQTT 协议3. cJSON 移植4. 例程1. MQTT 协议简介MQTT 协议全称是Message Queuing Telemetry Transport,翻译过来就是消息队列遥测传输协议,它是物联网常用的应用层协议,运行在TCP/IP 中的应用层中,依赖TCP 协议,因此它具有非常高的可靠性,同时它是基于TCP 协议的<客...原创 2019-10-08 10:04:15 · 3286 阅读 · 4 评论 -
MQTT 协议 主题及通配符的使用方法
目录1. 概述2. 示例说明2.1 Device01发布2.2 Device02发布2.3 Device03发布2.4 Device04发布2.5 测试结果3. 应用场景说明1. 概述协议详细描述:https://blog.csdn.net/XieWinter/article/details/101198750MQTT通过“主题”实现将消息从发布者客户端...原创 2019-09-30 23:08:42 · 5565 阅读 · 3 评论 -
lwIP TCP/IP 协议栈笔记之十二: IP协议
目录1. IP地址1.1 IP地址概述1.2 IP地址编址1.3 特殊IP地址1.3.1 受限广播地址1.3.2 直接广播地址1.3.3 多播地址1.3.4 环回地址1.3.5 本网络本主机2. 局域网与广域网的概念2.1 局域网2.2 广域网3. 网络地址转换(NAT)4. IP 数据报5. IP 数据报的数据结构6. IP 数据报...原创 2019-09-02 11:25:54 · 2297 阅读 · 1 评论 -
lwIP TCP/IP 协议栈笔记之十一: ARP协议
目录1. TCP/IP模型及链路层概述2. MAC地址的概念3. ARP 概述4. 以太网帧结构5. IP 地址映射为物理地址6.ARP 缓存表7. ARP 缓存表的超时处理8. ARP 报文9.发送ARP 请求包10. 数据包接收流程10.1 以太网之数据包接收10.2 ARP数据包处理10.3 更新ARP 缓存表11.数据包发送流程...原创 2019-08-30 14:12:28 · 2089 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之三: 配置文件 per.h & cc.h 详解
目录1. per.h(性能测试)2. cc.h(cpu和compiler配置)宏定义非标准函数1. per.h(性能测试)在opt.h配置中,LWIP_PERF 选项,控制性能测试,当需要启用这个功能做一些相关的配置工作。所有与此部分相关的定义都不能放在lwipopts.h中,而是放在 arch/perf.h 中! 在整个lwip中进行测量调用,这些调用可以定义为空。...原创 2019-08-07 19:54:18 · 3502 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之二: 配置文件 opt.h & lwipopts.h 详解
目录1. 简介2. 配置 opt.h 说明2.1 基础配置(Infrastructure)NO_SYSTimersmemcpyCore locking and MPUHeap and memory poolsInternal memory poolsSNMP MIB2 callbacksMulticast(组播)ThreadingChecksum...原创 2019-08-02 15:17:48 · 10622 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之四: 操作系统配置文件 sys_arch.c & sys_arch.h 详解
目录1. 操作系统抽象层说明1.1 Semaphores(信号量)1.2 Mutexes(互斥锁)1.3 Mailboxes(邮箱)1.4 Misc(杂项)2. Time(时间)3. Critical sections(关键代码段/临界区)1. 操作系统抽象层说明无需在NO_SYS模式下实现本节中的功能。 特定于操作系统的代码应该在arch/ sys_arch...原创 2019-08-13 17:21:33 · 5739 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之七: 网络数据包
目录1. TCP/IP 协议分层2. lwIP的线程模型3. pbuf 结构体说明4. pbuf 的类型4.1 PBUF_RAM类型4.2 PBUF_POOL 类型4.3 PBUF_ROM和PBUF_REF 类型5.pbuf_alloc()6. pbuf_free()7. 其它pbuf 操作函数7.1 pbuf_realloc()7.2 pbuf_...原创 2019-08-21 11:03:17 · 2905 阅读 · 1 评论 -
lwIP TCP/IP 协议栈笔记之八: 无操作系统移植
目录1. lwIP添加到工程2. 添加头文件3. 修改网卡驱动4. lwIP 时基5. 协议栈初始化6. 获取数据包6.1 查询方式6.2 中断方式7. ping 命令和ipconfig命令1. lwIP添加到工程如上图,把源码中src 添加到工程,并添加LwIP 头文件路径。比较简单,不做赘述2. 添加头文件lwipopts.h、cc.h、...原创 2019-08-21 15:23:34 · 1898 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之六: 内存管理
目录1. 几种内存分配策略1.1 固定大小的内存块1.2 可变长度分配2. 动态内存池(POOL)2.1 内存池的预处理2.2 内存池初始化2.2 内存池分配2.3 内存释放3. 动态内存堆3.1 内存堆的组织结构3.2 内存堆的初始化3.3 内存分配3.4 内存释放4. 使用C 库的malloc 和free 来管理内存5. LwIP 中...原创 2019-08-18 11:29:43 · 2481 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之九: 有操作系统(FreeRTOS)移植
目录1. lwIP添加到工程2. 添加文件3. 修改网卡驱动4. 协议栈初始化5. 例程LwIP 不仅能在裸机上运行,也能在操作系统环境下运行,而且在操作系统环境下,用户能使用NETCONN API 与Socket API 编程,相比RAW API 编程会更加简便。操作系统环境下,这意味着多线程环境,一般来说LwIP 作为一个独立的处理线程运行,用户程序也独立为一个/多个线...原创 2019-08-22 21:44:51 · 2472 阅读 · 1 评论 -
lwIP TCP/IP 协议栈笔记之十: LwIP 数据流框架
目录1. 网卡数据接收流程2. 内核超时处理2.1 sys_timeo 结构体与超时链表2.2 注册超时事件2.3 超时检查3. tcpip_thread 线程4. LwIP 中的消息4.1 消息结构4.2 数据包消息4.3API 消息通信过程中,本质上是数据的交互,数据传递,理解LwIP的框架,就可以更清晰的理解数据传递过程、原理。注:以下皆为有...原创 2019-08-29 23:24:49 · 5552 阅读 · 0 评论 -
lwIP TCP/IP 协议栈笔记之二十一: 百度天工物和阿里云物联 IOT接入平台
目录1. 百度天工物接入1.1 物接入简介1.2 使用 IOT HUB1.2.1 创建项目1.2.2 创建策略1.2.3 创建身份与创建用户1.2.4 MQTT 软件测试连接1.2.5 MQTT 软件测试连接1.2.6 IOT HUB的规则引擎和数据可视化2. 阿里云物联2.1 使用阿里云物联2.2 MQTT FX连接测试2.4 阿里云物...原创 2019-10-09 14:53:37 · 1561 阅读 · 0 评论