嵌入式——物联网基础知识

转载于太极创客:http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/internet-basics/

TCP/IP协议簇(TCP/IP Stack)

在网络系统中,为了保证通信设备之间能正确地进行通信,必须使用一种双方都能够理解的语言,这种语言被称为“协议”。
TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词。
TCP/IP协议被划分为4层,分别是:

Layer 名称 包含协议
应用层 HTTP, FTP, mDNS, WebSocket, OSC …
传输层 TCP、UDP
网络层 IP
链路层 WIFI

链路层(Link Layer):WIFI

**链路层的主要作用是实现设备之间的物理链接。**举例来说,我们日常使用的WiFi就是链路层的一种。

ESP8266利用WIFI联网时有三种工作模式:STA模式、AP模式、STA+AP模式

  1. 无线终端模式(Wireless Station,STA):连接WIFI
  2. 接入点模式(Access Point,AP):ESP8266建立一个WIFI网络,使其他设备连接
  3. 混合模式(STA+AP):具有两种模式的功能,可以做网络桥接

网络层(Internet Layer):IP

设备可以通过链路层进行联网,但是只有链路层还无法实现设备之间的数据通信。因为各设备间没有明确的标识,网络设备不知道要向谁传输数据,也无法确定从何获取数据。
因此每一台网络设备都需要有独立的地址(IP),数据在这些独立的地址间实现传输。当网络中所有设备都有了独立的IP地址后,设备之间就可以收发数据了。

IP协议有两个版本:IPV4和IPV6,IPV6可以为更多的网络设备提供独立的IP地址。

  • IPV4:由4个十进制数字组成:如192.168.4.1前面3个数字(192.168.4)是设备所连接的本地局域网地址(也称为子网地址),最后一个数字1是该设备在本地局域网中的地址编号。例如连接同一个局域网:手机(192.168.4.1)、手环(192.168.4.2)
    嵌入式——物联网基础知识_第1张图片
  • IPV6:由8组16进制组成,每组4个16进制

传输层(Transportation Layer):TCP、UDP

  • TCP(Transmission Control Protocol)传输控制协议,TCP协议可以更好的保证数据传输的准确性,但是传输速度比UDP协议慢一点。TCP协议的特点是可以保证所有数据都能被接收端接收,数据的传输顺序也不会被打乱,而且如有数据损坏则重发受损数据。基于以上功能特点,TCP通常用于电子邮件及文件上传等。
  • UDP(User Datagram Protocol)用户数据报文协议,UDP协议并不能保证所有数据都被接收端所接受。一旦出现数据受损的情况,UDP协议将会抛弃受损的数据。这些数据一旦被抛弃将会永久性的消失,发送端不会因为数据受损而重新发送。因此UDP协议远不如TCP协议可靠。UDP比TCP速度快,因此UDP协议通常用于网络游戏以及语音聊天或视频聊天应用。

应用层(Application Layer):HTTP、WebSocket、DNS

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

HTTP协议

应用层中有许多协议,最常见的就是HTTP协议,常被用来传输网页数据
HTTP协议由请求响应构成,因此HTTP的工作模式很像是一问一答。

  1. HTTP请求
    HTTP请求主要分为两大部分:请求头(Request Header)、请求体(Request Body)
    简化后的请求头内容:
GET / HTTP/1.1
Host: www.taichi-maker.com
  • GET:是一个读取请求,请求网站服务器把网页数据发送过来
  • /:请求服务器把网站首页的数据发过来
  • HTTP/1.1:指请求所采用的HTTP协议版本是1.1
  • “Host: www.taichi-maker.com” :表示请求的域名是 www.taichi-maker.com 也就是太极创客网站的域名。
  • HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
  • HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
  1. HTTP响应
    响应内容分为:响应头和响应体,响应体部分是可选的(可为空)
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
  • HTTP/1.1:表示HTTP协议版本是1.1
  • 200:表示服务器成功找到了请求的网页资源,404代表没有找到。常见的服务器状态码:
    • 100~199:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
    • 200~299:成功接收请求并已完成整个处理过程。常用200
    • 300~399:完成请求,客户需进一步细化请求。
    • 400~499:客户端的请求有错误,常用404和403(403的含义是权限不够,服务器拒绝访问。)
    • 500~599:服务器端出现错误,常用500
  • Content-Type:表示响应体的内容是什么类型
    • text/html:表示网页HTML代码
  1. DNS(Domain Name System/域名系统)
    DNS域名系统主要是为了解决IP地址不好记这一问题。
    可以把DNS看作一个电话本,联系人为域名(WWW.baidu.com),电话号码为IP地址,域名(联系人)比IP地址(电话号码)更好记。

你可能感兴趣的:(嵌入式学习笔记,物联网,tcp/ip)