网络基础知识(ESP8266开发篇)

1、首先谈及一下互联网的网络知识
网络基础知识(ESP8266开发篇)_第1张图片
网络基础知识(ESP8266开发篇)_第2张图片
网络基础知识(ESP8266开发篇)_第3张图片
2、关于本篇的相关的物联网知识

  • TCP协议簇
    在网络系统中,为了保证通信设备之间能正确地进行通信,必须使用一种双方都能够理解的语言,这种语言被称为“协议”。TCP/IP协议簇是Internet的基础。
    网络基础知识(ESP8266开发篇)_第4张图片
    可以看出链路层的WIFI是我们ESP8266常用的方式

  • 链路层:
    链路层的主要作用是实现设备之间的物理链接,我们日常使用的WiFi就是链路层的一种。
    ESP8266利用WiFi联网时有三种工作模式。
    1)模式1:无线终端模式(Wireless Station)
    ESP8266可通过WiFi连接无线路由器。这与用您的手机通过WiFi连接无线路由器的模式相同
    网络基础知识(ESP8266开发篇)_第5张图片

    2)模式2: 接入点模式(Access Point, 也称 AP)
    ESP8266也可以建立WiFi网络供其它设备连接。当ESP8266以此模式运行时,我们可以使用手机搜索ESP8266所发出的WiFi网络并进行连接
    网络基础知识(ESP8266开发篇)_第6张图片

    3)模式3:混合模式(Wireless Station + AP)
    所谓混合模式即以上两种模式的混合。

  • 网络层与IP协议
    尽管设备可以通过链路层联网,但是光有链路层还无法实现设备之间的数据通讯。因为网络设备没有明确的标识。网络设备无从知晓要向谁传输数据,也无法确定从何处获取数据。

    在网络中传输数据中。每一台网络设备都有独立的地址,数据在这些独立的地址间实现传输。但是网络设备的地址是什么呢?很多人都听过这个名字,它叫IP地址。

    网络层主要作用是通过IP协议为联网设备提供IP地址。

    要确保网络中所有设备IP地址不重复,还需要DHCP (Dynamic Host Configuration Protocol) 服务器来实现这一功能。(因为我们呢需要独立的IP来匹配对应的设备)

    IP协议有两个版本,分别是IPv4和IPv6。我们常用IPV4,IPv4版本的IP地址由4个数字组成,如 192.168.0.200 这个IP地址由两部分组成。其中前三个数字(192.168.0)是设备所连接的本地局域网络地址(也称子网地址)。而最后一个数字200是该设备在本地局域网络中的地址编号。

    举个例子,假设我们的NodeMCU IP地址是192.168.0.2,手机是192.168.0.3,电脑是192.168.0.4。到这里,我们的手机,电脑和NodeMCU就可以使用各自的IP地址彼此收发数据了。当然它们在一个网段内,之间组成的网络就叫做局域网。 网络基础知识(ESP8266开发篇)_第7张图片
    子网掩码(Subnet Mask)其目的就是扩充ip地址。
    网络基础知识(ESP8266开发篇)_第8张图片
    也就是说,这几台设备的IP地址相同部分对应子网掩码是255的部分,而设备IP地址不同的部分对应子网掩码0。我们用255这个数字标出IP地址的哪一部分是子网地址。而用0这个数字来表示IP地址的哪一部分是设备部分。

    MAC物理地址(网络芯片的地址)和ARP()
    网络设备间要想实现通讯,设备之间不光要知道彼此的IP地址,还要知道设备的MAC地址(也叫MAC码),这个MAC地址是固化在网络设备硬件中的,我们可以通过系统设置或工具软件改变MAC地址,但这也仅仅是临时的修改,而不是真正将设备硬件的MAC地址进行永久性的更改。如果想永久性的修改MAC地址,那就要借助硬件产商所提供的工具软件了

    上面说到,如果知道网络层中的对方的IP地址,我们在传输数据的时候还需要知道对方的mac设备的地址,此时使用ARP协议就可以得到对方返回回来的MAC设备地址

  • 传输层
    网络设备通讯时,数据丢失和数据受损的情况经常出现。

    为此引入传输层的TCP和UDP来保证数据的数据传输的准确性。

    TCP协议可以更好的保证数据传输的准确性,但是传输速度比UDP协议而言要慢一些。因为存在复杂的数据包结构和帧结构。电子邮件及文件上传等。

    UDP协议并不能保证所有数据都被接收端所接受。一旦出现数据受损的情况,UDP协议将会抛弃受损的数据。这些数据一旦被抛弃将会永久性的消失,发送端不会因为数据受损而重新发送。因此UDP协议远不如TCP协议可靠。这是因为UDP比TCP速度快。因此UDP协议通常用于网络游戏以及语音聊天或视频聊天应用

  • 应用层
    传输层可以实现设备间的数据传输。但发送端和接收端还需要一种协议来理解这些传输信息的含义。

    最常见是HTTP协议。它常被用来传输网页数据。我们这篇教程也将着重介绍HTTP协议。HTTP协议由请求和响应构成。也就是说,HTTP的工作模式很像是一问一答。

    http请求
    当您在浏览器输入www.taichi-maker.com这一网址并按下回车,这时候浏览器会把这一操作转换成一个HTTP请求。这个HTTP请求主要分为两大部分。一部分是请求头(Request Header)一部分是请求体(Request Body)。对于我们学习物联网知识来说,请求头是我们重点要关注的内容

    举个例子下面是请求头内容,
    GET / HTTP/1.1
    Host: www.taichi-maker.com
    “GET” 是一个读取请求。也就是请求网站服务器把网页数据发送过来
    “/” 的作用就是要告诉网站服务器,我这个读取请求的内容是网站根目录下的内容。换句话说,就是请求服务器把网站首页的网页数据发过来。

    在 HTTP 协议中,GET只是诸多请求方法中的一种。以下是HTTP协议中的其它请求方法:
    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

    http响应
    看一看浏览器发送以上HTTP请求后,接收到的服务器HTTP响应。
    HTTP响应内容也是分为两个部分,一部分是响应头(Response Header)一部分是响应体(Response Body)。其中响应体部分是可选项,也就是说有些HTTP响应只有响应头,而响应体是空的。

    举个例子,下面是响应头的内容
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=UTF-8
    “HTTP/1.1”这个信息,它的含义就是此HTTP响应所采用的协议版本是1.1。
    “200”这个代码,这些都是HTTP响应状态码。“200”代表服务器成功找到了请求的网页资源(这一点大家在后面的OK中也已经体现出来了),比如常见的报错响应404服务器无法找到请求的网页资源
    以下是常见的服务器状态码:
    100~199:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
    200~299:成功接收请求并已完成整个处理过程。常用200
    300~399:完成请求,客户需进一步细化请求。
    400~499:客户端的请求有错误,常用404和403(403的含义是权限不够,服务器拒绝访问。)
    500~599:服务器端出现错误,常用500

    DNS(Domain Name System/域名系统)
    为了解决IP地址不好记这一问题,DNS被派上了用场。我们可以把DNS看作是一个巨型电话本。电话本中的联系人一栏就是网站的域名,而电话本中的电话号码一栏则是这些网站的IP地址。有了DNS我们就可以使用简单易记的域名来访问网站了。

参考链接:https://www.jianshu.com/p/9b9438dff7a2
参考链接:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/internet-basics/internet-layer/
参考链接:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/internet-basics/application-layer/
参考链接:https://blog.csdn.net/u014379540/article/details/53385914

你可能感兴趣的:(esp8266,网络,网络协议,物联网)