今日头条
实验设备:STM32F103C8T6开发板,ESP8266WIFI模块
一、本实验使用手机控制开发板,就要使用到发送数据
简单地理解:手机就是源,开发板就是目的
但是我们在网络通信里面就不能这么去说,我们需要涉及到设备地址操作。
在网络通信中,源和目的我们如何去理解那,此时要用到IP。仅仅有IP还是不足够很清晰的去寻找某个设备,此时就要添加端口,才可以精准的去寻找某个设备。
源有IP地址+端口,目的有IP地址+端口

图1

图2
三、网络基础知识
1、传输数据的三要素:
源:发出数据的设备
目的:数据接受的目标
数据:数据本身(数据+数据的长度)
例如:
memcpy(endaddr, startaddr, len);//endaddr是数据的放到目的地址,startaddr是开始的数据地址
网络传输数据中:
源:IP+端口
目的:IP+端口
数据:数据本身(数据+数据的长度)
二、公网IP不足
什么是公网IP:假设有一个互联网,凡是能接入互联网的IP地址,都可以称之为公网IP。
IP不足问题:在传输数据时,每个设备都会涉及到IP,当设备过于多时,会出现IP不够使用的问题。

图3
什么是私网IP:在家、公司中,使用手机或者电脑连接网络,此时手机和电脑可以称之为私网IP。
什么是局域网:在同一个路由器下的所有设备,都是在同一个局域网里。
私网IP是可以相同的,因为我们使用路由器进行连入互联网。而路由器则是用到的是公网IP,公网IP是不可以相同的。
路由器则变成了不同局域网的私网IP到私网IP之间传输信息的中转站。
解决公网不足问题,不同局域网下私网IP发送数据到私网IP过程
例如:
①主机A的局域网IP是10.1.1.100,它使用端口1025,去访问公网211.100.7.34
②但是它没有公网IP,路由器此时就要修改这个数据包了,路由器就把数据包里的(10.1.1.100:1025)改成自己的IP和端口(162.105.176.65:16384),发出伪造的数据包。
③服务器收到后,返回数据给(162.105.176.65:16384)
④路由器收到数据后查表:
⑤这是主机A要我取的数据,于是把数据包里的目的(162.105.176.65:16384)改为(10.1.1.100:1025),
并发给主机A
⑥主机A收到数据
三、实际应用
手机如何才能与开发板通信?
硬件上理解:中间加入服务器,通过服务器中转。
协议上理解:本次实验使用MQTT

MQTT
MQTT简单理解:
当观众看电视过程中,想去选择湖南卫视。此时就需要向服务器订阅,说我想看湖南卫视,此时服务器向频道发布者说,发布者接到订阅后,然后发布到服务器。此时观众就可以在电视中看到湖南卫视。
程序设计:
软件设计分为三层:
①网络设备层:负责设备初始化、数据收发
②MQTT协议层:负责数据的解析、打包
③应用层:根据数据控制设备
下个文章,我们细谈MQTT协议,以及程序框架。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !