简介
lwip的介绍就不累赘了,网上有许多教程。这里推荐野火的<<《[野火]LwIP应用开发实战指南—基于野火STM32》—20210122.pdf>>介绍的非常详细。(该文档我已上传到资源了)我们记录主要是一些用法。
在说各种应用协议的使用之前,先说下网络基本的协议栈,这对于我们去学习,理解都有很大的帮助,更有助于我们记忆。脑海里有个基本的框架。
层次划分
OSI层次根据ISO制定的就是标准的七层协议:
实际上对于嵌入式来说许多协议也用不上,所以lwip就简化了层次,分为了4层协议。
- 应用层
是我们常用的一些应用协议,如HTTP,MQTT,FTP等等 - 传输层
主要就是TCP和UDP - Internet层
-也就是常说的IP层 - 网络接入层(数据链路层)
也就是网卡驱动,用于控制物理层的数据收发
传输过程
从图中可以形象的看到当传输一个数据包的时候,首先按照应用层的协议加上报头,再到传输层,加上传输层的报头,这样一层一层的添加最后发送出去。就好比我们早上一件一件的穿上衣服,晚上睡觉的时候在一件一件的脱去。人时钟还是那个人,每件衣服都相当于一层协议。要想了解一个人,还得剥去衣服,卸掉装,才能还原真正的风采。
其实,网络协议并没有那么负杂。
他们就像制定好的规则一样,每个字段都有每个字段的意义。
只要了解了协议的字段意义,抽丝剥茧之后就是赤果果了。
一开始学得时候,我老是被层次困扰,
后面发现跑偏了,先用好一个协议,一通百通
为什么要先看下这个模型尼?
将自己所学的协议带入,一层一层的了解。
遇到问题的时候,我们知道先从什么层去看。更重要的是有助于记忆。
为什么要学习那么多协议?
协议学的多,就像你买了多个衣服,知道在什么场合穿什么衣服了。
当你使用http的时候,你就可以知道什么叫head,什么叫body了。