物聯(lián)網(wǎng)數(shù)據(jù)接入篇-應(yīng)用層協(xié)議一(4)

躍曰
0 評論 1378 瀏覽 12 收藏 20 分鐘
B端产品经理要负责对目标行业和市场进行深入的分析和调研,了解客户的需求、痛点、期望和行为,找到产品的价值主张 🔗

前三篇文章講述的是TCP/IP 模型中的網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層,這里到了第四層應(yīng)用層。由于協(xié)議比較多,就分兩篇來介紹。

這一篇講 HTTP、Websocket、郵件傳輸協(xié)議、遠(yuǎn)程登錄協(xié)議、文件傳輸協(xié)議、文件共享協(xié)議以及網(wǎng)絡(luò)管理協(xié)議。下一篇再講物聯(lián)網(wǎng)常用的 Modbus 協(xié)議、MQTT、協(xié)議、CoAP 協(xié)議、OPC 框架。

第四層:應(yīng)用層協(xié)議之一

應(yīng)用層是 TCP/IP 模型中的最上層,直接與應(yīng)用程序交互,為應(yīng)用程序提供網(wǎng)絡(luò)通信服務(wù)。

提供各種應(yīng)用服務(wù)、對數(shù)據(jù)進(jìn)行特定的處理和格式化、與用戶交互、定義應(yīng)用程序之間通信的規(guī)則和協(xié)議、適應(yīng)不同的應(yīng)用場景和需求、為上層應(yīng)用提供統(tǒng)一的接口。

TCP 通過不同的端口號,來把信息轉(zhuǎn)達(dá)給應(yīng)用程序。端口號類似于房間的門,TCP 快遞上門了,送到哪個(gè)房間,就是用端口號來充當(dāng)門牌號的。

應(yīng)用層協(xié)議主要包括基于 TCP 的MQTT、DDS、Modbus-TCP、XMPP、AMQP、POP3、HTTP、HTTPS、FTP、Telnet、SMTP、Samba、CIFS、NFS。

應(yīng)用層協(xié)議還包括基于 UDP 的 DNS、SNMP、TFTP、DHCP、CoAP、Modbus-UDP、RIP、NTP。

還有即不基于 TCP,也不基于 UDP 的應(yīng)用層協(xié)議。

1. HTTP 協(xié)議

超文本傳輸協(xié)議,HyperText Transfer Protocol,HTTP 是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。HTTP是萬維網(wǎng)的數(shù)據(jù)通信的基礎(chǔ)。

HTTP是一個(gè)客戶端(用戶)和服務(wù)端(網(wǎng)站)之間請求和應(yīng)答的標(biāo)準(zhǔn),通常使用TCP協(xié)議。通過使用網(wǎng)頁瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個(gè)HTTP請求到服務(wù)器上指定端口(默認(rèn)端口為80)。我們稱這個(gè)客戶端為用戶代理程序(user agent)。應(yīng)答的服務(wù)器上存儲著一些資源,比如HTML文件和圖像。我們稱這個(gè)應(yīng)答服務(wù)器為源服務(wù)器(origin server)。在用戶代理和源服務(wù)器中間可能存在多個(gè)“中間層”,比如代理服務(wù)器、網(wǎng)關(guān)或者隧道(tunnel)。

通俗講,HTTP 是一個(gè)在計(jì)算機(jī)世界里專門在「兩點(diǎn)」之間「傳輸」文字、圖片、音頻、視頻等「超文本」數(shù)據(jù)的「約定和規(guī)范」?!敢眯×?coding」

設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。通過HTTP或者HTTPS協(xié)議請求的資源由統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers,URI)來標(biāo)識,也叫 URL。

組成部分

HTTP是一個(gè)客戶端(用戶)和服務(wù)端(網(wǎng)站)之間請求和應(yīng)答的標(biāo)準(zhǔn),通常使用TCP協(xié)議。

請求部分:

  • 請求行:包含請求方法(如 GET、POST 等)、請求的資源路徑和 HTTP 版本。
  • 請求頭:包含各種描述請求屬性的字段,如 Accept(接受的內(nèi)容類型)、content-type(發(fā)送的數(shù)據(jù)類型)、user-agent(用戶代理信息)等。
  • 請求體(可選):當(dāng)有具體數(shù)據(jù)要發(fā)送時(shí),如 POST 請求提交表單數(shù)據(jù)等。

響應(yīng)部分:

  • 響應(yīng)行:包含 HTTP 版本、狀態(tài)碼(如 200 表示成功、404 表示未找到等)和狀態(tài)描述。
  • 響應(yīng)頭:類似請求頭,包含關(guān)于響應(yīng)的各種屬性信息,如 content-length(響應(yīng)體長度)、content-type(響應(yīng)的數(shù)據(jù)類型)等。
  • 響應(yīng)體:實(shí)際返回給客戶端的數(shù)據(jù)內(nèi)容。

工作原理

由HTTP客戶端發(fā)起一個(gè)請求,建立一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接。HTTP服務(wù)器則在那個(gè)端口監(jiān)聽客戶端的請求。一旦收到請求,服務(wù)器會向客戶端返回一個(gè)狀態(tài),以及返回的內(nèi)容,如請求的文件、錯(cuò)誤消息、或者其它信息。

基于 HTTP 通信的流程:

HTTP 9 種請求方法:

啥是冪等?冪等意味著對一個(gè)資源進(jìn)行多次相同的操作,其產(chǎn)生的效果與一次操作是相同的。

特點(diǎn)

  • 簡單快速:請求方法和首部字段定義簡潔,傳輸效率較高。
  • 靈活:可以傳輸各種類型的數(shù)據(jù)。
  • 無狀態(tài):服務(wù)器不保存客戶端的狀態(tài)信息。

應(yīng)用

  • 網(wǎng)頁瀏覽:瀏覽器與服務(wù)器之間的數(shù)據(jù)交互。
  • Web API 開發(fā):移動端或其他客戶端與服務(wù)器端的通信。
  • 內(nèi)容分發(fā):如靜態(tài)資源的傳輸。

各種基于 Web 的應(yīng)用。

2. HTTPS 協(xié)議

超文本傳輸安全協(xié)議,HyperText Transfer Protocol Secure,HTTPS 是一種通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議。HTTPS經(jīng)由HTTP進(jìn)行通信,但利用SSL/TLS來加密數(shù)據(jù)包。HTTPS開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認(rèn)證,保護(hù)交換資料的隱私與完整性。

HTTP的URL是由“http://”起始與默認(rèn)使用端口80,而HTTPS的URL則是由“https://”起始與默認(rèn)使用端口443。

3. WebSocket 協(xié)議

WebSocket是一種網(wǎng)絡(luò)傳輸協(xié)議,可在單個(gè)TCP連接上進(jìn)行全雙工通信,位于 OSI 模型的應(yīng)用層。

他的出現(xiàn),是因?yàn)?HTTP 是半雙工,采用的是客戶端請求服務(wù)端才應(yīng)答,不請求就無法主動給用戶推送數(shù)據(jù)(采用輪休可以實(shí)現(xiàn)偽主動推送)。WebSocket 允許服務(wù)端主動向客戶端推送數(shù)據(jù),比如瀏覽網(wǎng)頁的時(shí)候,主動給你推一個(gè)彈窗廣告。

對于客戶端和服務(wù)端之間需要頻繁交互的復(fù)雜場景,比如網(wǎng)頁游戲,都可以考慮使用 WebSocket 協(xié)議。

4. 郵件協(xié)議:STMP、POP、IMAP

郵件協(xié)議是用于規(guī)范電子郵件在不同系統(tǒng)和設(shè)備之間傳輸、接收、存儲和管理等操作的一組規(guī)則和標(biāo)準(zhǔn)。

SMTP 協(xié)議

SMTP:Simple Mail Transfer Protocol,即簡單郵件傳輸協(xié)議。將郵件從發(fā)送方的郵件服務(wù)器傳輸?shù)浇邮辗降泥]件服務(wù)器。

POP 協(xié)議

POP:Post Office Protocol,即郵局協(xié)議,允許用戶從郵件服務(wù)器上把郵件下載到本地計(jì)算機(jī)進(jìn)行離線閱讀和管理。

IMAP 協(xié)議

IMAP:Internet Message Access Protocol,即互聯(lián)網(wǎng)消息訪問協(xié)議,與 POP 不同,它可以讓用戶在多個(gè)設(shè)備上同步郵件狀態(tài),比如已讀、未讀等。(SMTP 專注于郵件發(fā)送,POP 適合簡單的郵件下載與離線管理,而 IMAP 則為用戶提供了更強(qiáng)大和靈活的郵件在線管理體驗(yàn)。)

某些郵件客戶端,需要整合 qq 郵箱、網(wǎng)易郵箱、Gmail 等等,就需要配置 SMTP、POP、IMAP。

5. 遠(yuǎn)程登錄協(xié)議

Telnet 電傳打字機(jī)網(wǎng)絡(luò)

Telnet:Teletype Network。當(dāng)用戶在本地終端上發(fā)起 TELNET 連接請求時(shí),本地的 TELNET 客戶端與遠(yuǎn)程主機(jī)的 TELNET 服務(wù)器建立 TCP 連接。連接建立后,客戶端與服務(wù)器之間開始進(jìn)行交互。

SSH 安全外殼協(xié)議

SSH:Secure Shell,安全外殼協(xié)議。身份驗(yàn)證、通信加密、建立安全通道。

這兩個(gè)大家都熟悉,遠(yuǎn)程登錄服務(wù)器的時(shí)候用到其中一種或者兩種。

6. 文件傳輸協(xié)議

FTP 協(xié)議

FTP:File Transfer Protocol,即文件傳輸協(xié)議。戶在本地計(jì)算機(jī)和遠(yuǎn)程服務(wù)器之間進(jìn)行文件的上傳和下載操作,方便文件的共享和交換。

TFTP 協(xié)議

TFTP,Trivial File Transfer Protocol,簡單文件傳輸協(xié)議位于應(yīng)用層,基于 UPD 無連接、簡單的文件傳輸協(xié)議。

TFTP 的應(yīng)用場景包括:

  • 網(wǎng)絡(luò)設(shè)備的配置文件傳輸。
  • 某些嵌入式系統(tǒng)中軟件的更新和部署。

特點(diǎn):簡單、開銷小。

7. 應(yīng)用層文件共享協(xié)議

文件服務(wù)器

文件服務(wù)器包含 Windows 文件服務(wù)器、UNIX 文件服務(wù)器以及 Linux 文件服務(wù)器,具體是哪種類型取決于所采用的操作系統(tǒng)。

其中,Windows 文件服務(wù)器利用常見的 Internet 文件系統(tǒng)(CIFS)來向客戶端共享存儲。通常情況下,這可通過在計(jì)算機(jī)資源管理器中的屬性/共享操作以及在其他計(jì)算機(jī)上連接網(wǎng)絡(luò)驅(qū)動器來實(shí)現(xiàn)對文件夾的共享。文件服務(wù)器因操作系統(tǒng)的不同而顯得極為重要。

Windows – Windows:CIFS(Windows自助共享)

Linux – Windows:SMB(使用Samba)

Linux – Linux:NFS

Samba 服務(wù)器消息塊

Samba:Server Message Block。 它主要用于實(shí)現(xiàn) Linux 和 Windows 系統(tǒng)之間的文件和打印共享等交互操作。 可以讓 Linux 系統(tǒng)模擬 Windows 文件共享服務(wù)器的功能,方便不同操作系統(tǒng)之間的資源共享,基于 TCP。

CIFS 通用互聯(lián)網(wǎng)文件系統(tǒng)

CIFS:Common Internet File System。是微軟主導(dǎo)開發(fā)的一種網(wǎng)絡(luò)文件共享協(xié)議。它基于 SMB(Server Message Block)協(xié)議,廣泛應(yīng)用于 Windows 網(wǎng)絡(luò)環(huán)境中?;?TCP。

NFS 網(wǎng)絡(luò)文件系統(tǒng)

NFS:Network File System。主要用于在 Unix/Linux 系統(tǒng)之間進(jìn)行文件共享。具有高效、靈活的特點(diǎn),能夠方便地實(shí)現(xiàn)跨網(wǎng)絡(luò)的文件訪問和共享。主要基于 TCP。

8. 網(wǎng)絡(luò)管理協(xié)議

SNMP 簡單網(wǎng)絡(luò)管理協(xié)議

SNMP:Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議。網(wǎng)絡(luò)監(jiān)控、故障管理、配置管理、性能管理。大家熟悉的網(wǎng)吧的網(wǎng)管,就是操作 SNMP 服務(wù)器程序來管理網(wǎng)吧網(wǎng)絡(luò)的。

DNS 域名系統(tǒng)

DNS:Domain Name System,域名系統(tǒng)。維護(hù)主機(jī)名和 IP 之間關(guān)系,根據(jù)域名尋找 IP。

DNS 的根服務(wù)器不給出具體答案,而是給下一級服務(wù)器的地址,只指路不帶路。

域名和 IP 的對應(yīng)關(guān)系,保存在電腦中的 hosts 文件中,查看本地的域名表 hosts 文件:cat /etc/hosts

用 dig 命令,看看本地訪問淘寶的過程:dig www.taobao.com

NAT 網(wǎng)絡(luò)地址轉(zhuǎn)換

NAT:Network Address Translator 是用于在本地網(wǎng)絡(luò)中使用私有地址,在連接互聯(lián)網(wǎng)時(shí)轉(zhuǎn)而使用全局 IP 地址的技術(shù)。是因?yàn)?IPv4 不夠分。

除轉(zhuǎn)換 IP地址外,還出現(xiàn)了可以轉(zhuǎn)換TCP、UDP 端口號的NAPT (Network Address Ports Translator) 技術(shù),由此可以實(shí)現(xiàn)用一個(gè)全局 IP 地址與多個(gè)主機(jī)的通信 。

NAT 把同個(gè)公司、家庭、學(xué)校內(nèi)的主機(jī)對外部通信時(shí),把私有 IP 地址轉(zhuǎn)換成公有 IP 地址。

DHCP 動態(tài)主機(jī)配置協(xié)議

DHCP:Dynamic Host Configuration Protocol,DHCP可以自動分配IP、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS。使用 DHCP 之前,首先要架設(shè)一臺 DHCP 服務(wù)器”。然后將 DHCP 所要分配的 IP 地址設(shè)置到服務(wù)器上。此外,還需要將相應(yīng)的子網(wǎng)掩碼、路由控制信息以及DNS 服務(wù)器的地址等設(shè)置到服務(wù)器上。

DHCP客戶端使用的端口68,服務(wù)端使用端口67,使用的UDP應(yīng)用層的協(xié)議。為什么一開始沒有 IP 的設(shè)備能請求到 DHCP 服務(wù)器數(shù)據(jù),因?yàn)闆]有 IP 的設(shè)備,默認(rèn) IP 是 0.0.0.0。

DHCP 一般不為服務(wù)器分配IP,因?yàn)樗麄円褂霉潭↖P,所以 DHCP 一般只為辦公環(huán)境的主機(jī)分配 IP。

DHCP 服務(wù)器和客戶端一般需要在一個(gè)局域網(wǎng)內(nèi),在為客戶端分配IP的時(shí)候需要進(jìn)行多次廣播。不在一個(gè)局域網(wǎng)內(nèi),需要用到 DHCP 中繼代理。

有三種分配方式

  1. 自動分配:MAC 地址與 IP 綁定,適用于服務(wù)器、打印機(jī)或網(wǎng)絡(luò)設(shè)備。
  2. 動態(tài)分配:IP 使用時(shí)有時(shí)間限制的,到期需要續(xù)租,否則就會釋放,適用于大量移動設(shè)備連接到網(wǎng)絡(luò)的場景,如公司辦公室或公共無線網(wǎng)絡(luò)。
  3. 手動分配:手動分配是由DHCP服務(wù)器管理員專門為客戶端指定IP地址。 有利于網(wǎng)絡(luò)監(jiān)控和管理。

RIP 路由信息協(xié)議

RIP,Routing Information Protocol,路由信息協(xié)議是一種內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),不常用。

RIP 協(xié)議規(guī)定網(wǎng)絡(luò)里的每一個(gè)路由器均需維護(hù)由其自身至其他每一個(gè)目的網(wǎng)絡(luò)的距離記錄,即距離向量。RIP 協(xié)議對于距離的界定如下:其一,從一個(gè)路由器到直接相連的網(wǎng)絡(luò)的距離被定義為 1;其二,從一個(gè)路由器到非直接連接的網(wǎng)絡(luò)的距離被定義為所歷經(jīng)的路由器數(shù)量加 1。RIP 協(xié)議中的距離又被稱作跳數(shù),并且 RIP 協(xié)議準(zhǔn)許一條路徑最多僅能包含 15 個(gè)路由器。故而,當(dāng)距離等于 16 時(shí)就等同于不可達(dá)。

NTP 網(wǎng)絡(luò)事件協(xié)議

NTP(Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議),基于UDP的一種用于計(jì)算機(jī)時(shí)間同步的應(yīng)用層協(xié)議,用于在網(wǎng)絡(luò)中實(shí)現(xiàn)時(shí)鐘同步。

后記

前三篇文章講述的是TCP/IP 模型中的網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層,這里到了第四層應(yīng)用層。由于協(xié)議比較多,就分兩篇來介紹。

理解 TCP/IP 四層框架是學(xué)習(xí)物聯(lián)網(wǎng)相關(guān)協(xié)議的基礎(chǔ)。學(xué)習(xí)協(xié)議是做好物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)接入、監(jiān)控、報(bào)警、下控、運(yùn)維、數(shù)據(jù)分析、智控的基礎(chǔ)。

我閱讀了大量的書籍和文章,匯總出了 TCP/IP 四層框架的主要協(xié)議、物聯(lián)網(wǎng)設(shè)備的主要協(xié)議。工作量之大,超出預(yù)期。我看了 B 站《希賽關(guān)于軟考網(wǎng)絡(luò)工程師的全套視頻教程》,看了《圖解 TCP/IP》,看了大量的文章。又結(jié)合之前的物聯(lián)網(wǎng)行業(yè)的從業(yè)經(jīng)驗(yàn),整理出來這篇文章。 期望大家的鼓勵(lì)與支持,歡迎大家交流。

參考文獻(xiàn)

15 張圖, 把TCP/IP 講得一清二楚!-騰訊云開發(fā)者社區(qū)-騰訊云

什么是OPC UA&它是如何工作的?_嗶哩嗶哩_bilibili

圖解TCP/IP (第5版)

探索 OSI 會話層:建立和管理通信會話的關(guān)鍵_不同機(jī)器之間用戶會話的建立與管理-CSDN博客

3、物聯(lián)網(wǎng)的物理層協(xié)議 – 孤情劍客 – 博客園

網(wǎng)絡(luò)工程師教程

【2024軟考】《網(wǎng)絡(luò)工程師》新版精講視頻-希賽網(wǎng)(零基礎(chǔ)系統(tǒng)教程,建議收藏)!_嗶哩嗶哩_bilibili

Modbus通信協(xié)議詳解-CSDN博客

MQTT協(xié)議_mqtt payload一定要字符串嗎-CSDN博客

第一章 – MQTT介紹 · MQTT協(xié)議中文版

MQTT協(xié)議_mqtt payload一定要字符串嗎-CSDN博客

物聯(lián)網(wǎng)協(xié)議之COAP簡介及Java實(shí)踐-CSDN博客

如何使用CoAP的對稱加密自主接入和DTLS自主接入_物聯(lián)網(wǎng)平臺(IoT)-阿里云幫助中心

DTU和RTU的區(qū)別_rtu和dtu的區(qū)別-CSDN博客

小米IoT文檔與資源中心

5.1 IP 基礎(chǔ)知識全家桶

network_protocol_structures.pdf

本文由 @躍曰 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
16420人已学习16篇文章
为达成业务运营目标,合理使用数据工具指导运营决策的过程,就是数据化运营。本专题的文章分享了数据化运营指南。
专题
15917人已学习12篇文章
对于产品经理来说,做用户调研是一项很重要的过程。本专题的文章分享了如何做好用户调研。
专题
69296人已学习13篇文章
想要做款好产品,这些规范你得知道。
专题
35314人已学习14篇文章
原型对于产品经理来说是一门必修课。
专题
12043人已学习12篇文章
关于如何写简历、简历上些什么的文章大家看了很多。那么细分到产品经理这个岗位来说,写简历又有什么需要注意的呢?本专题的文章分享了产品经理如何写简历。
专题
13591人已学习12篇文章
行业总是处于动态变化之中,那么,处于大环境下的产品经理应当如何规划好自身、选择合适的工作方向呢?本专题的文章分享了产品经理的职业方向和规划。