1、首先谈及一下互联网的网络知识



2、关于本篇的相关的物联网知识

  • TCP协议簇
    在网络系统中,为了保证通信设备之间能正确地进行通信,必须使用一种双方都能够理解的语言,这种语言被称为“协议”。TCP/IP协议簇是Internet的基础。

    可以看出链路层的WIFI是我们ESP8266常用的方式

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

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

    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地址彼此收发数据了。当然它们在一个网段内,之间组成的网络就叫做局域网。
    子网掩码(Subnet Mask)其目的就是扩充ip地址。

    也就是说,这几台设备的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开发篇)相关推荐

  1. linux基础-网络基础知识篇

    一.网络基础知识概念 1.什么是网络? 网络即为实现通讯的技术. 2.网络的诞生六步曲 (1).早期的网络需要拥有两台通讯的主机,当主机之间有通讯需求是就构建网络进行通讯 (2).当主机网络需要通讯时 ...

  2. 第二十六期:100 个网络基础知识普及,看完成半个网络高手

    本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 作者:佚名来源 本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链 ...

  3. 干货满满!100个网络基础知识普及(附带答案解析)

    本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参 ...

  4. 100 个网络基础知识普及,看完成半个网络高手!(文末附PDF版本)

    点击上方"涛哥聊Python",选择"星标"公众号 重磅干货,第一时间送达 来源:CU技术社区 阅读文本大概需要 5 分钟 为了方便大家更好着按需查找对应知识点 ...

  5. 牛逼!知道这100 个网络基础知识,成了半个网络高手!(文末附PDF版本)

    来源:CU技术社区 为了方便大家更好着按需查找对应知识点,还给大家整理成了带有高清目录的 PDF 哦,获取方式见文末 100 个网络基础知识普及,看完成半个网络高手! 1)什么是链接? 链接是指两个设 ...

  6. 收藏100个网络基础知识

    100 个网络基础知识普及,看完成半个网络高手! 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参考模型的层次是什么? 有 7 个 ...

  7. 计算机数据库管理基本知识,2015年计算机四级考试《数据库技术》基础知识:概念篇...

    2015年计算机四级考试<数据库技术>基础知识:概念篇 信息与数据 1. 信息.物质.能量是组成客观世界并促进社会发展的三大基本要素; 2. 信息(Information)--是客观世界事 ...

  8. 网络基础知识汇总学习

    一.网线(双绞线)连接线的制作 双绞线制作有 568A 和 568B 两个标准,日常以 568B 标准较常用. 568B 标准按颜色排序为: 1- 橙白. 2- 橙.3- 绿白.4- 蓝. 5- 蓝白 ...

  9. 【Linux网络编程】网络基础知识

    00. 目录 文章目录 00. 目录 01. 网络基础知识 02. 附录 01. 网络基础知识 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. ...

  10. 网络基础知识 第一章上

    欢迎大家参加"思科网院杯"大学生网络技术大赛.本竞赛主要考察选手的网络基础知识,题目难度远比ACM等编程比赛简单,适合大一新生参加.只要你对计算机网络感兴趣,愿意学习网络知识,即可 ...

最新文章

  1. skill——iptables(五)
  2. 在深度学习中处理不均衡数据集
  3. ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测)
  4. SAP Spartacus OccEndpointsService getUrl方法的实现原理
  5. 以太坊系列之十一: 零起步使用remix开发智能合约
  6. mysql sqlite 性能优化_MySQL和Sqlite3性能测试
  7. 在Mac上安装Linux的行为是否应该被鄙视?
  8. sklearn中SVM的可视化
  9. 引用类型-Function类型
  10. error: x264_bit_depth undeclared (first use in this function) did you mean x264_picture_t
  11. HDU 题目分类(转载)
  12. Oracle MySQL sql 列转行 union all 实现
  13. indexOf的用法
  14. Unity5.6 VideoPlayer用法
  15. seaborn小提琴图
  16. Python 将一个已知的 utc时间字符串 转换为东八区时间
  17. ​浅谈 Java 后端开发工程师腾讯面试经历分享总结
  18. 0x80004005
  19. HNUST 1231:猜牌术(水....)
  20. RW 搜索ACPI协议RSD PTR表

热门文章

  1. 解决连接深信服vp无法通过burpsuit抓包的问题
  2. [feather]StarlingUi框架——初识feather、界面启动及Ui加载
  3. 安卓源码AOSP下载使用的正确姿势
  4. bootstrap使用tableExport导出pdf时中文乱码问题
  5. 如何进行用户画像分析
  6. R语言ggplot2包学习笔记
  7. vin码构成以及自动识别的用途。
  8. 阿里云ACP认证之云安全知识整理(考题占比 10%)
  9. 腾讯云永久修改主机名
  10. spark统计pv和uv值