物联网基础知识

物联网和互联网的重要性

互联网和物联网的重要性在于,它们使人们能够在世界各地进行通信、信息共享和合作,从而改变了人们的生活方式、工作方式和社会交往方式,同时也带来了新的机遇和挑战。

0.1.互联·网是什么

互联网的定义

互联网是一个由全球各大洲上的数以亿计的计算机网络相互连接而成的庞大网络,它是一个全球性的、开放的、动态的、多层次的网络结构,它不依赖于任何中央主机,而是依靠大量的网络互联而成。

0.2. 互联网概述

定义

互联网,一个革命性的概念,是由全球范围内数以亿计的计算机网络互相连接而成的庞大网络。这个全球网络体系使得信息和数据可以在世界各地迅速、高效地传输。

特点

0.3. 物联网简介

与互联网的区别

物联网(IoT)在互联网的基础上发展而来,但它引入了智能设备和传感器,使物理世界的对象能够连接到网络并相互通信。这不仅仅是计算机或手机之间的连接,而是扩展到了日常物品和工业设备。

物联网的概念

物联网是一个将日常物品与互联网连接起来的系统,使这些物品能够收集和交换数据。这些物品,通过内置的传感器、软件和其他技术,能够与其他设备或系统进行交互和协作。

0.4. 两者关系

互联网与物联网的融合

互联网和物联网的结合,为现代科技带来了革命性的变革。互联网提供了一个全球性的信息共享平台,而物联网则拓展了这个平台的边界,将现实世界与数字世界无缝连接。它们相互补充,共同推动了智能化、自动化技术的进步。例如,在智能家居中,物联网设备(如智能灯泡、温控器)通过互联网进行控制和数据交换,实现更高效的能源管理和生活方式的个性化。

通过这种融合,我们不仅见证了信息交流的极大便利,也看到了物联网在改善生活质量、提高工业效率等方面的巨大潜力。



互联网的特点

互联网的特点包括以下几个方面:

1. 全球性:互联网是一个全球性的网络,它无视地理边界,使人们能够在世界各地进行通信、信息共享和合作。

2. 去中心化:互联网的架构是去中心化的,没有单一的中央控制机构,而是由许多相互连接的节点组成,这些节点之间可以相互通信和交换信息。

3. 可扩展性:互联网的基础架构具有很高的可扩展性,可以容纳大量的用户和设备,而不会显著降低性能。

4. 开放性:互联网是一个开放的平台,任何人都可以访问和使用它,创建自己的网站、应用程序或服务,并与其他人共享信息和资源。

5. 多样性:互联网上存在各种各样的内容和服务,涵盖了几乎所有领域,包括信息、媒体、社交、电子商务、教育等。

6. 互动性:互联网使用户能够互动和参与,而不仅仅是 passively 接受信息。这促进了社交媒体、在线社区和协作工具的兴起。

7. 开放标准:互联网的发展依赖于开放的标准和协议,这些标准使不同的系统和设备能够互操作,确保了互联网的互联互通性。

8. 普及性:互联网已经广泛普及,成为了现代生活的一部分,许多人每天都依赖它来获取信息、娱乐、工作和社交。

9. 高度动态性:互联网发展迅速,新技术、应用程序和服务不断涌现,使互联网生态系统保持了高度的动态性和创新性。

10. 安全和隐私挑战:随着互联网的发展,也出现了安全和隐私方面的挑战,需要不断改进和加强网络安全措施以应对威胁。

这些特点使互联网成为了一个革命性的工具,改变了人们的生活方式、工作方式和社会交往方式,同时也带来了新的机遇和挑战。

2.互联网协议是什么?

互联网协议是一组规则,用于在互联网上进行通信和数据传输。它定义了数据格式、数据编码、数据传输方式、数据路由等方面的规则,以确保在互联网上的不同设备之间能够相互通信和交换数据。Alt text

所以在互联网上的手机电脑以及各种家居设备进行交互时,他们都会同时使用共同语言进行沟通,这个共同语言就是互联网协议,准确来说是TCP/IP协议。

TCP/IP协议包含了许多子协议,其中最重要的是TCP、IP、UDP、HTTP、FTP、SMTP、DNS等。

TCP/IP协议的分层结构如下表格所示:

层级名称功能
1链路层(Link Layer)在物理媒介上发送和接收数据,处理与物理网络硬件(如以太网、Wi-Fi)相关的细节
2互联网层(Internet Layer)负责数据包的路由和转发,核心协议是IP(互联网协议)
3传输层(Transport Layer)为两点间的网络连接提供数据传输服务,主要协议有TCP(传输控制协议)和UDP(用户数据报协议)
4应用层(Application Layer)为用户的应用程序提供服务,包括HTTP(网页浏览)、SMTP(电子邮件)、FTP(文件传输)等协议

链路层

链路层是互联网协议的最底层,它负责在物理媒介上发送和接收数据,处理与物理网络硬件(如以太网、Wi-Fi)相关的细节。

那么ESP8266利用WiFi联网时,就是通过链路层来实现的。有三种工作模式

1. STA模式:Station模式,即为“客户端模式”,连接的是无线路由器,可以实现上网功能,可以看作是一个无线终端模式。

Alt text

2. AP模式:Access Point模式,即为“热点模式”,相当于一个无线路由器,其他设备可以连接它,实现数据交换。

Alt text

3. STA+AP模式:即为“混合模式”,可以同时连接无线路由器,又可以作为热点供其他设备连接。

Alt text

IP层

IP层是互联网协议的核心层,它负责数据包的路由和转发,是互联网协议的核心,也是互联网的核心。

当esp8266连接到WiFi时,就会获得一个IP地址,这个IP地址就是IP层的地址,它是唯一的,可以用来标识网络中的设备。手机电脑等设备也是通过IP地址来进行通信的。

Alt text

子网掩码

子网掩码是一个网络术语,用于确定IP地址中哪一部分代表网络地址,哪一部分代表主机地址。在IP地址中,网络部分标识特定的网络,而主机部分标识该网络上的特定设备。

子网掩码通常以四个数字组表示,类似于IP地址。每个数字组(或八位字节)可以是0到255之间的任何值。在子网掩码中,连续的1表示网络部分,0表示主机部分。

举例说明

假设有一个IP地址:192.168.1.10,和一个子网掩码:255.255.255.0

子网掩码的前三个数字组都是255(即二进制中的11111111),这意味着IP地址的前三个数字组(192.168.1)表示网络地址。最后一个数字组是0(即二进制中的00000000),这表示IP地址的最后一个数字组(10)是主机地址。

因此,192.168.1.10这个IP地址位于192.168.1这个网络上,且它的特定主机地址是10。

子网掩码的作用

子网掩码的主要作用是分割网络和决定IP地址的范围。它可以帮助确定某个IP地址是否属于同一个子网,从而影响网络的路由和通信。在更大规模的网络设计中,通过合理地分配和使用子网掩码,可以有效管理网络流量和提高网络安全性。

传输层(TCP/UDP)

传输层是互联网协议的第三层,它为两点间的网络连接提供数据传输服务,主要协议有TCP(传输控制协议)和UDP(用户数据报协议)。

TCP的协议是非常稳定的,它可以保证数据的可靠传输,但是它的传输速度比较慢,适合于对数据传输速度要求不高的场景。

UDP的协议是不稳定的,它不能保证数据的可靠传输,但是它的传输速度比较快,适合于对数据传输速度要求高的场景。

TCP和UDP的区别如下表格所示:

特性TCPUDP
类型面向连接的协议无连接协议
可靠性可靠(确保数据正确传输)不可靠(不保证数据正确传输)
顺序传输保证数据包顺序不保证数据包顺序
速度相对较慢(因为需要建立连接和确认)相对较快(无需建立连接)
数据流控制有(使用流量控制和拥塞控制机制)
受损数据处理自动重传受损或丢失的数据包不会重传,丢弃受损的数据包
使用场景需要可靠数据传输的应用(如网页浏览、文件传输)不需要可靠传输的应用(如实时视频会议、在线游戏)
报头大小较大(通常20字节或更多)较小(通常8字节)
示例协议HTTP, FTP, SMTPDHCP, DNS, VoIP

应用层

应用层中的HTTP协议是互联网协议的最高层,它为用户的应用程序提供服务,包括HTTP(网页浏览)、SMTP(电子邮件)、FTP(文件传输)等协议。由请求和响应组成,请求由客户端发出,响应由服务器发出。Alt text

HTTP请求

HTTP请求由三部分组成:请求行、请求头和请求体。本次主要讲解请求行和请求头
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html
Content-Type: application/x-www-form-urlencoded
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l

在HTTP(超文本传输协议)中,一个请求由几个不同的部分组成,其中最重要的是请求行(Request Line)和请求头(Request Headers)。

请求行(Request Line)

  1. 请求方法(Method):这指示了要对资源执行的动作。常见的请求方法包括 GET、POST、PUT、DELETE 等。例如,GET 方法用于请求资源,POST 方法用于提交数据给服务器。
  2. 请求URI(Uniform Resource Identifier):这指明了请求的资源的位置。例如,在URL http://www.example.com/path?query=123 中,URI部分是 /path?query=123
  3. HTTP版本:这表明了客户端用于请求的HTTP协议的版本,例如 HTTP/1.1 或 HTTP/2.0。

一个典型的请求行看起来像这样:GET /path?query=123 HTTP/1.1

请求头(Request Headers)

请求头包含了有关请求和客户端本身的信息,用于向服务器传达额外的上下文信息。它们是由键值对组成的,每对键值对占一行。常见的请求头包括:

示例:HTTP响应

假设您向一个网站发出了一个GET请求,以下是该网站可能返回的HTTP响应示例:

状态行

HTTP/1.1 200 OK

响应头

Date: Wed, 21 Oct 2024 07:28:00 GMT
Server: Apache/2.4.1 (Unix)
Content-Type: text/html; charset=UTF-8
Content-Length: 1234
Connection: close

响应体

<!DOCTYPE html>
<html>
<head>
    <title>Example Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
    <p>This is an example of an HTTP response.</p>
</body>
</html>

响应体通常是HTML文档,但也可以是文本、JSON、图像或其他类型的数据。在此例中,它是一个简单的HTML页面,包含一些基本的HTML标签。

这个示例展示了一个完整的HTTP响应,其中包括了状态行、若干响应头,以及一个HTML格式的响应体。这是Web浏览器和服务器间常见的交互方式。