物联网数据接入篇-应用层协议一(4)
cac55 2024-10-18 04:17 19 浏览 0 评论
前三篇文章讲述的是TCP/IP 模型中的网络接口层、网络层、传输层,这里到了第四层应用层。由于协议比较多,就分两篇来介绍。
这一篇讲 HTTP、Websocket、邮件传输协议、远程登录协议、文件传输协议、文件共享协议以及网络管理协议。下一篇再讲物联网常用的 Modbus 协议、MQTT、协议、CoAP 协议、OPC 框架。
第四层:应用层协议之一
应用层是 TCP/IP 模型中的最上层,直接与应用程序交互,为应用程序提供网络通信服务。
提供各种应用服务、对数据进行特定的处理和格式化、与用户交互、定义应用程序之间通信的规则和协议、适应不同的应用场景和需求、为上层应用提供统一的接口。
TCP 通过不同的端口号,来把信息转达给应用程序。端口号类似于房间的门,TCP 快递上门了,送到哪个房间,就是用端口号来充当门牌号的。
应用层协议主要包括基于 TCP 的MQTT、DDS、Modbus-TCP、XMPP、AMQP、POP3、HTTP、HTTPS、FTP、Telnet、SMTP、Samba、CIFS、NFS。
应用层协议还包括基于 UDP 的 DNS、SNMP、TFTP、DHCP、CoAP、Modbus-UDP、RIP、NTP。
还有即不基于 TCP,也不基于 UDP 的应用层协议。
1. HTTP 协议
超文本传输协议,HyperText Transfer Protocol,HTTP 是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
通俗讲,HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。「引用小林 coding」
设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识,也叫 URL。
组成部分
HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。
请求部分:
- 请求行:包含请求方法(如 GET、POST 等)、请求的资源路径和 HTTP 版本。
- 请求头:包含各种描述请求属性的字段,如 Accept(接受的内容类型)、content-type(发送的数据类型)、user-agent(用户代理信息)等。
- 请求体(可选):当有具体数据要发送时,如 POST 请求提交表单数据等。
响应部分:
- 响应行:包含 HTTP 版本、状态码(如 200 表示成功、404 表示未找到等)和状态描述。
- 响应头:类似请求头,包含关于响应的各种属性信息,如 content-length(响应体长度)、content-type(响应的数据类型)等。
- 响应体:实际返回给客户端的数据内容。
工作原理
由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,以及返回的内容,如请求的文件、错误消息、或者其它信息。
基于 HTTP 通信的流程:
HTTP 9 种请求方法:
啥是幂等?幂等意味着对一个资源进行多次相同的操作,其产生的效果与一次操作是相同的。
特点
- 简单快速:请求方法和首部字段定义简洁,传输效率较高。
- 灵活:可以传输各种类型的数据。
- 无状态:服务器不保存客户端的状态信息。
应用
- 网页浏览:浏览器与服务器之间的数据交互。
- Web API 开发:移动端或其他客户端与服务器端的通信。
- 内容分发:如静态资源的传输。
各种基于 Web 的应用。
2. HTTPS 协议
超文本传输安全协议,HyperText Transfer Protocol Secure,HTTPS 是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。
HTTP的URL是由“http://”起始与默认使用端口80,而HTTPS的URL则是由“https://”起始与默认使用端口443。
3. WebSocket 协议
WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于 OSI 模型的应用层。
他的出现,是因为 HTTP 是半双工,采用的是客户端请求服务端才应答,不请求就无法主动给用户推送数据(采用轮休可以实现伪主动推送)。WebSocket 允许服务端主动向客户端推送数据,比如浏览网页的时候,主动给你推一个弹窗广告。
对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用 WebSocket 协议。
4. 邮件协议:STMP、POP、IMAP
邮件协议是用于规范电子邮件在不同系统和设备之间传输、接收、存储和管理等操作的一组规则和标准。
SMTP 协议
SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议。将邮件从发送方的邮件服务器传输到接收方的邮件服务器。
POP 协议
POP:Post Office Protocol,即邮局协议,允许用户从邮件服务器上把邮件下载到本地计算机进行离线阅读和管理。
IMAP 协议
IMAP:Internet Message Access Protocol,即互联网消息访问协议,与 POP 不同,它可以让用户在多个设备上同步邮件状态,比如已读、未读等。(SMTP 专注于邮件发送,POP 适合简单的邮件下载与离线管理,而 IMAP 则为用户提供了更强大和灵活的邮件在线管理体验。)
某些邮件客户端,需要整合 qq 邮箱、网易邮箱、Gmail 等等,就需要配置 SMTP、POP、IMAP。
5. 远程登录协议
Telnet 电传打字机网络
Telnet:Teletype Network。当用户在本地终端上发起 TELNET 连接请求时,本地的 TELNET 客户端与远程主机的 TELNET 服务器建立 TCP 连接。连接建立后,客户端与服务器之间开始进行交互。
SSH 安全外壳协议
SSH:Secure Shell,安全外壳协议。身份验证、通信加密、建立安全通道。
这两个大家都熟悉,远程登录服务器的时候用到其中一种或者两种。
6. 文件传输协议
FTP 协议
FTP:File Transfer Protocol,即文件传输协议。户在本地计算机和远程服务器之间进行文件的上传和下载操作,方便文件的共享和交换。
TFTP 协议
TFTP,Trivial File Transfer Protocol,简单文件传输协议位于应用层,基于 UPD 无连接、简单的文件传输协议。
TFTP 的应用场景包括:
- 网络设备的配置文件传输。
- 某些嵌入式系统中软件的更新和部署。
特点:简单、开销小。
7. 应用层文件共享协议
文件服务器
文件服务器包含 Windows 文件服务器、UNIX 文件服务器以及 Linux 文件服务器,具体是哪种类型取决于所采用的操作系统。
其中,Windows 文件服务器利用常见的 Internet 文件系统(CIFS)来向客户端共享存储。通常情况下,这可通过在计算机资源管理器中的属性/共享操作以及在其他计算机上连接网络驱动器来实现对文件夹的共享。文件服务器因操作系统的不同而显得极为重要。
Windows – Windows:CIFS(Windows自助共享)
Linux – Windows:SMB(使用Samba)
Linux – Linux:NFS
Samba 服务器消息块
Samba:Server Message Block。 它主要用于实现 Linux 和 Windows 系统之间的文件和打印共享等交互操作。 可以让 Linux 系统模拟 Windows 文件共享服务器的功能,方便不同操作系统之间的资源共享,基于 TCP。
CIFS 通用互联网文件系统
CIFS:Common Internet File System。是微软主导开发的一种网络文件共享协议。它基于 SMB(Server Message Block)协议,广泛应用于 Windows 网络环境中。基于 TCP。
NFS 网络文件系统
NFS:Network File System。主要用于在 Unix/Linux 系统之间进行文件共享。具有高效、灵活的特点,能够方便地实现跨网络的文件访问和共享。主要基于 TCP。
8. 网络管理协议
SNMP 简单网络管理协议
SNMP:Simple Network Management Protocol,简单网络管理协议。网络监控、故障管理、配置管理、性能管理。大家熟悉的网吧的网管,就是操作 SNMP 服务器程序来管理网吧网络的。
DNS 域名系统
DNS:Domain Name System,域名系统。维护主机名和 IP 之间关系,根据域名寻找 IP。
DNS 的根服务器不给出具体答案,而是给下一级服务器的地址,只指路不带路。
域名和 IP 的对应关系,保存在电脑中的 hosts 文件中,查看本地的域名表 hosts 文件:cat /etc/hosts
用 dig 命令,看看本地访问淘宝的过程:dig www.taobao.com
NAT 网络地址转换
NAT:Network Address Translator 是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。是因为 IPv4 不够分。
除转换 IP地址外,还出现了可以转换TCP、UDP 端口号的NAPT (Network Address Ports Translator) 技术,由此可以实现用一个全局 IP 地址与多个主机的通信 。
NAT 把同个公司、家庭、学校内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址。
DHCP 动态主机配置协议
DHCP:Dynamic Host Configuration Protocol,DHCP可以自动分配IP、子网掩码、网关、DNS。使用 DHCP 之前,首先要架设一台 DHCP 服务器”。然后将 DHCP 所要分配的 IP 地址设置到服务器上。此外,还需要将相应的子网掩码、路由控制信息以及DNS 服务器的地址等设置到服务器上。
DHCP客户端使用的端口68,服务端使用端口67,使用的UDP应用层的协议。为什么一开始没有 IP 的设备能请求到 DHCP 服务器数据,因为没有 IP 的设备,默认 IP 是 0.0.0.0。
DHCP 一般不为服务器分配IP,因为他们要使用固定IP,所以 DHCP 一般只为办公环境的主机分配 IP。
DHCP 服务器和客户端一般需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播。不在一个局域网内,需要用到 DHCP 中继代理。
有三种分配方式
- 自动分配:MAC 地址与 IP 绑定,适用于服务器、打印机或网络设备。
- 动态分配:IP 使用时有时间限制的,到期需要续租,否则就会释放,适用于大量移动设备连接到网络的场景,如公司办公室或公共无线网络。
- 手动分配:手动分配是由DHCP服务器管理员专门为客户端指定IP地址。 有利于网络监控和管理。
RIP 路由信息协议
RIP,Routing Information Protocol,路由信息协议是一种内部网关协议(IGP),不常用。
RIP 协议规定网络里的每一个路由器均需维护由其自身至其他每一个目的网络的距离记录,即距离向量。RIP 协议对于距离的界定如下:其一,从一个路由器到直接相连的网络的距离被定义为 1;其二,从一个路由器到非直接连接的网络的距离被定义为所历经的路由器数量加 1。RIP 协议中的距离又被称作跳数,并且 RIP 协议准许一条路径最多仅能包含 15 个路由器。故而,当距离等于 16 时就等同于不可达。
NTP 网络事件协议
NTP(Network Time Protocol,网络时间协议),基于UDP的一种用于计算机时间同步的应用层协议,用于在网络中实现时钟同步。
后记
前三篇文章讲述的是TCP/IP 模型中的网络接口层、网络层、传输层,这里到了第四层应用层。由于协议比较多,就分两篇来介绍。
理解 TCP/IP 四层框架是学习物联网相关协议的基础。学习协议是做好物联网设备数据接入、监控、报警、下控、运维、数据分析、智控的基础。
我阅读了大量的书籍和文章,汇总出了 TCP/IP 四层框架的主要协议、物联网设备的主要协议。工作量之大,超出预期。我看了 B 站《希赛关于软考网络工程师的全套视频教程》,看了《图解 TCP/IP》,看了大量的文章。又结合之前的物联网行业的从业经验,整理出来这篇文章。 期望大家的鼓励与支持,欢迎大家交流。
参考文献
本文由 @跃曰 原创发布于人人都是产品经理。未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
相关推荐
- MIRIX重塑AI记忆:超Gemini 410%,节省99.9%内存,APP同步上线
-
MIRIX,一个由UCSD和NYU团队主导的新系统,正在重新定义AI的记忆格局。在过去的十年里,我们见证了大型语言模型席卷全球,从写作助手到代码生成器,无所不能。然而,即使最强大的模型依...
- 硬盘坏了怎么把数据弄出来对比10种硬盘数据恢复软件
-
机械硬盘或固态硬盘损坏导致数据丢失时,应立即停止对硬盘的读写操作,并根据损坏类型选择逻辑层恢复工具或专业物理恢复服务。紧急处置措施立即停止通电使用:发现硬盘异响、无法识别或数据异常时,需立即断开连接,...
- 蓝宝石B850A WIFI主板新玩法:内存小参调节体验
-
蓝宝石前段时间发布了一款性价比极高的主板:NITRO氮动B850AWIFI主板。这款主板的售价只要1349元,相比普遍1500元以上的B850主板,确实极具竞争力。虽然价格实惠,蓝宝石NITR...
- 内存卡损坏读不出怎么修复?这5个数据恢复工具汇总,3秒挽回!
-
在数字化生活的浪潮中,内存卡凭借小巧便携与大容量存储的特性,成为相机、手机、行车记录仪等设备存储数据的得力助手,承载着无数珍贵回忆与重要文件。然而,当内存卡突然损坏无法读取,无论是误删、格式化、病毒入...
- 内存卡修复不再难,2025年必学的6款软件工具
-
内存卡出现问题时,通常是因为文件系统损坏、物理损坏或病毒感染。通过专业的修复工具,我们可以尝试恢复数据并修复内存卡。内存卡修复利器:万兴恢复专家万兴恢复专家是一款功能强大的数据恢复软件,支持多种设备和...
- 有5款内存卡修复工具汇总,内存卡数据轻松找回!
-
在如今的数字时代,内存卡作为不可或缺的存储介质,广泛应用于相机、手机、行车记录仪等各类设备中,承载着我们珍贵的照片、视频以及重要文件。然而,数据丢失的风险却如影随形,误删、格式化、病毒入侵、硬件故障等...
- 揭秘:如何通过多种方式精准查询内存条型号及规避风险?
-
以下是内存条型号查询的常用方法及注意事项,综合了物理查看、软件检测、编码解析等多种方式:一、物理标签查看法1.拆机查看标签打开电脑主机/笔记本后盖找到内存条,观察标签上的型号标识。例如内存标签通常标...
- 内存卡数据恢复5个工具汇总推荐,轻松找回珍贵记忆!
-
在这个数字化时代,内存卡作为我们存储珍贵照片、重要文件的常用载体,广泛应用于手机、相机、平板电脑等设备。但数据丢失的意外却常常不期而至,误删除、格式化、病毒攻击,甚至内存卡的物理损坏,都可能让辛苦保存...
- 电脑内存智能监控清理,优化性能的实用软件
-
软件介绍Memorycleaner是一款内存清理软件。功能很强,效果很不错。Memorycleaner会在内存用量超出80%时,自动执行“裁剪进程工作集”“清理系统缓存”以及“用全部可能的方法清理...
- TechPowerUp MemTest64:内存稳定性测试利器
-
TechPowerUpMemTest64:内存稳定性测试利器一、软件简介TechPowerUpMemTest64,由知名硬件信息工具GPU-Z的出品公司TechPowerUp发布,是一款专为64位...
- 微软推出AI恶意软件检测智能体Project Ire,精确度高达98%
-
IT之家8月6日消息,当地时间周二,微软宣布推出可自主分析恶意软件的AI检测系统原型——ProjectIre。该项目由微软研究院、Defender研究团队及Discovery&a...
- 农村老木匠常用的20种老工具,手艺人靠它养活一家人,你认识几种
-
生活中的手艺老匠人是非常受到尊敬和崇拜的,特别是在农村曾经的老匠人都是家里的“座上宾”。对于民间传统的手艺人,有一种说法就是传统的八大匠:木匠、泥匠、篾匠、铁匠、船匠、石匠、油匠和剃头匠。木匠的祖始爷...
- 恶意木马新变种伪装成聊天工具诱人点击
-
国家计算机病毒应急处理中心通过对互联网监测发现,近期出现一种恶意木马程序变种Trojan_FakeQQ.CTU。该变种通过伪装成即时聊天工具,诱使计算机用户点击运行。该变种运行后,将其自身复制到受感染...
- 学习网络安全 这些工具你知道吗?
-
工欲善其事必先利其器,在新入门网络安全的小伙伴而言。这些工具你必须要有所了解。本文我们简单说说这些网络安全工具吧!Web安全类web类工具主要是通过各种扫描工具,发现web站点存在的各种漏洞...
- 5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕?
-
这个时代,大家对电脑出现漏洞,可能已经习以为常。但如果机哥告诉大家,这个漏洞能够在5分钟内,破解并盗取你所有加密文件,而且还无法通过软件和补丁修复...这可就有点吓人啦。事情是酱婶的。来自荷兰埃因...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)