LWIP学习笔记系列
- 1. 教程 00:从网线上的电信号到 lwIP——PHY、MAC、DMA 与
netif的完整边界 - 2. lwIP Source Lab 教程索引
- 3. 教程 01:从 upstream
master到第一条可读源码链——Linux Host、构建树与源码地图 - 4. 教程 02:从
main()到第一次 Ping——netif、TAP、ARP 与 ICMP 的完整源码链 - 5. 教程 03:从
low_level_input()到pbuf_free()——pbuf的数据视图、Chain 与引用计数 - 6. 教程 04:从
ethernet_input()到 Echo Reply——Ethernet、ARP、IPv4 与 ICMP 的分层数据通路 - 7. 教程 05:从
udpecho_raw_init()到 Echo Reply——UDP Raw API、PCB 与回调数据通路 - 8. 教程 06:从
udpecho_thread()到 Socket——Netconn、Mailbox 与顺序式 API - 9. 教程 07:从
tcpecho_raw_init()到ESTABLISHED——TCP 三次握手与 PCB 状态机 - 10. 教程 08:从
tcp_write()到 ACK 清队列——TCP 数据发送、窗口与回调 - 11. 教程 09:从
tcp_slowtmr()到 Fast Retransmit——TCP 超时重传与重复 ACK - 12. 教程 10:从
tcp_receive()到ooseq/ SACK——TCP 乱序、重组与选择确认 - 13. 教程 11:从
tcpip_init()到sys_arch——线程、Mailbox、Timer、Semaphore 与 Core Locking - 14. 教程 12:从
pbuf_alloc()/tcp_new()到资源回收——mem、memp与pbuf内存体系 - 15. 教程 13:从
dhcp_start()到DHCP_STATE_BOUND——DHCPv4、ACD、Timer 与真实抓包 - 16. 教程 14:从
dns_gethostbyname()到dns_found()——DNS Resolver、UDP PCB、Cache、Timer 与异步回调 - 17. 教程 15:IPv4 与 IPv6——从网络层工作原理到嵌入式工程取舍
- 18. 教程 16:从 MTU 到
ip4_frag()/ip4_reass()——IPv4 分片、重组、超时与内存压力 - 19. 教程 17:从
IP_ADD_MEMBERSHIP到igmp_input()——IPv4 Multicast、IGMPv2、MAC Filter 与组成员状态机 - 20. 教程 18:从
udp_sendto()到etharp_output()——Multi-netif IPv4 路由、Default Netif、Gateway 与下一跳 - 21. 教程 19:从
ip_chksum_pseudo()到netif->linkoutput()——lwIP 校验和、Checksum Offload 与驱动边界 - 22. 教程 20:从
netif->linkoutput()到pbuf_custom——Ethernet Driver、DMA Buffer、所有权与 Zero-copy - 23. 教程 21:从 DMA Descriptor Ring 到
netif->input()——ISR、Polling、TX Completion 与 Backpressure - 24. 教程 22:从 PHY Auto-Negotiation 到
netif_set_link_up()——Link Up/Down、MAC 速率与协议栈恢复 - 25. 教程 23:从
ethernet_input()到LWIP_HOOK_VLAN_SET——802.1Q VLAN Tag、VID/PCP 与硬件 Offload - 26. 教程 24:从
mdns_example_init()到mdns_recv()——mDNS、DNS-SD、Probe/Announce 与 PTR/SRV/TXT 服务发现 - 27. 教程 25:从
autoip_start()到ACD_IP_OK——IPv4 Link-Local、169.254/16、ARP Probe/Announce、Conflict 与 DHCP Cooperation - 28. 教程 26:从
snmp_example_init()到mib2_counters——SNMPv2c、OID Tree、GET/GETNEXT/GETBULK 与 MIB2 - 29. 教程 27:从
lwiperf_start_tcp_server_default()到 TCP ACK——lwIP 吞吐量、窗口、pbuf、线程与 Driver 瓶颈定位 - 30. 教程 28:从
pppos_create()到ppp_input()——PPP Core、PPPoS 串口字节流与 HDLC-like Framing - 31. 教程 29:从
lcp_open()到np_up()——LCP、PAP/CHAP、IPCP、IPv6CP 与 PPP 协商状态机 - 32. 教程 30:从
ipcp_up()到ppp_link_status_cb()——PPP 地址、DNS、Default Route、Link Down 与 Reconnect - 33. 教程 31:SLIP vs PPPoS——串口 IP Framing、错误检测、协商与工程边界
- 34. 教程 32:从
httpd_init()到http_sent()——HTTPD、altcp、fsdata 与 HTTP 连接生命周期 - 35. 教程 33:从
https_ex_init()到http_recv()——altcp、mbedTLS、TLS Handshake 与 HTTPS 数据通路 - 36. 教程 34:MQTT 从协议流程到 lwIP 源码——连接、订阅、发布与回调链
- 37. 教程 35:从
tls_config到mqtt_cyclic_timer()——MQTT over TLS、Keep Alive、Timeout 与应用侧 Reconnect - 38. 教程 36:从
sntp_example_init()到sntp_process()——SNTP、DHCP/DNS、Timer 与系统时间同步 - 39. 教程 37:从
httpc_get_file_dns()到 Body Callback——HTTP/HTTPS Client、DNS、altcp 与下载数据通路 - 40. 教程 38:从
lwipopts.h到 Port Contract——lwIP 裁剪、构建选择、OS Port 与 Network Port - 41. 教程 39:从
lwip_system_init()到tcpip_input()——RT-Thread 如何把 lwIP 接进 RTOS 与 Ethernet Device - 42. 教程 40:从
socket()到lwip_socket()——DFS fd、SAL Socket 与 lwIP Backend - 43. 教程 41:从 NetDev 注册到
socket_init()——Default NetDev、Protocol Family 与 lwIP / AT Backend 选择 - 44. 教程 42:从
rt_hw_stm32_eth_init()到tcpip_input()——STM32H750 + RT-Thread + lwIP Ethernet Port - 45. 教程 43:从
ETH_IRQHandler()到HAL_ETH_Transmit()——STM32H7 Ethernet DMA、Descriptor、Cache 与 Zero-copy 边界 - 46. 教程 44:从
phy_monitor_thread_entry()到dhcp_network_changed()——STM32H750 PHY Link、Auto-negotiation 与 DHCP 恢复 - 47. 教程 45:从 Link Up 到 MQTT Reconnect——STM32 + RT-Thread + lwIP MCU Cloud Lifecycle
- 48. lwIP Source Lab
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wdfk-prog的个人博客!
评论









