博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ESP8266使用教程之网络知识简讲(TCP/IP)
阅读量:3781 次
发布时间:2019-05-22

本文共 1156 字,大约阅读时间需要 3 分钟。

总述

我们使用 ESP8266 模块,就是为传输数据到互联网上。而 ESP8266 有内置的 TCP/IP 协议栈,可以方便我们进行数据交换。那么 TCP/IP 协议栈是什么?

一.计算机网络体系架构

​ TCP/IP 协议栈 是指能够在多个不同网络间实现信息传输的协议族。

​ 说 TCP/IP 协议栈,那么就不得不提 OSI 参考模型,它是国际标准化组织(ISO)1997年提出的开放系统互联(Open System Interconnection,OSI)参考模型。TCP/IP 协议栈使用类似于 OSI 参考模型的分层方式,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtSdwDRh-1586449698922)(/网络知识/OSI_TCP.png)]

​ 可以看出 TCIP/IP 模型中,网络接口层相当于 OSI 七层模型中的数据链路层和物理层。它负责接收网络层的数据,并通过物理网络发送出去,或者在物理网络接收数据帧,再将数据提交给网络层。为了更好解释,数据的交换,我用下图进行解释:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-maa8sFdc-1586449698924)(/网络知识/数据流向.png)]

上图中的箭头代表数据的流向,颜色变化代表数据已经进行了封装或解封装

我们从左往右看

  • PC1

红色的应用层数据(”hello“),进入传输层进行封装变成蓝色数据,进入网络层进行封装变成黄色数据,进入网络接口层进行封装为绿色数据,并且最后将数据发送出去。

  • PC2

网络接口层进行数据接收,然后进行绿色数据的解封装为黄色数据发送给网络层,然后网络层再将黄色数据解封装为蓝色数据发送给传输层,传输层再将蓝色数据解封装为红色数据发送给应用层,最后应用层显示在屏幕上(“hello”)

二. ESP8266 为什么可以传输网络数据

答案很明显,ESP8266 有 TCP/IP 协议栈使我们可以传输网络数据,我们就来看看 ATK-ESP8266 是怎么做到的,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vzGe8qgc-1586449698925)(/网络知识/ESP8266数据流向.png)]

​ 我们可以看到,我们只要将数据通过串口输入,其他都是 ESP8266 模块帮我们做好,大大方便了我们的开发,发送网络数据。

三. TCP/IP 概念模型的各层的协议

​ 能将数据进行封装,又将数据进行解封装,肯定基于某种原则,而这种原则就是协议,TCP/IP 概念模型各个层级有自己的协议,如下图所示(其中只是主要协议):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xGnQiYt9-1586449698926)(/网络知识/各层协议.png)]

​ 正是这各个协议使我们的数据可以送达。

​ 于是,更近一步,就可以看到数据是如何封装的,如下图所示(以TCP为例):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZnKi284a-1586449698926)(/网络知识/具体数据封装.png)]

​ 而在学习 ESP8266 的过程中,我们所会遇到的就是传输层的 TCP/UDP 协议。接下来就将对其进行讲解。

-----------------------------------------------结束--------------------------------------------------------

文章有价值,请各位看官点个赞,关注我或者点右边打个赏吧!

下一篇将分享 学习 ESP8266 会遇到的 TCP/UDP 协议

转载地址:http://cumvn.baihongyu.com/

你可能感兴趣的文章
简单实现一个数组、链表
查看>>
关于从其他程序切回word文档时卡顿问题的解决办法
查看>>
Linux安装Java环境
查看>>
Java集合 ArrayList原理
查看>>
Git的基本操作
查看>>
简述128陷阱
查看>>
在spring boot项目中修改包名要注意的一些问题
查看>>
编写类实现从后台向前台返回所要求的数据
查看>>
spring boot的学习(1.创建一个初始的spring boot项目)
查看>>
Python的入门学习
查看>>
⑤mpvue 小程序框架 :初始化项目 分析项目结构
查看>>
⑦mpvue Flyio实现前后台交互
查看>>
操作系统:Java模拟CPU调度算法(非抢占短进程优先、可抢占优先权调度、多级反馈队列调度)
查看>>
【前端】在页面中还原英雄联盟客户端?
查看>>
【前端】Vue 纯干货 基础知识分享!
查看>>
3.1servlet入门和MVC模型
查看>>
3.2servlet功能和会话技术
查看>>
泛型详解
查看>>
集合案例:斗地主
查看>>
软件测试进阶篇
查看>>