常見判斷題
MQTT與TCP的區(qū)別
誕生時間
TCP協(xié)議誕生于1974年冷戰(zhàn)期間践惑。
MQTT誕生于1999年互聯(lián)網(wǎng)初期,TCP協(xié)議比MQTT協(xié)議誕生早了25年局义。
Ashton提出IoT概念也是在1999年诞外,因此MQTT協(xié)議生逢其時。當時MIT Auto-ID Labs的Kevin Ashton為了把寶潔的供應鏈上的RFID標簽和互聯(lián)網(wǎng)連接起來丐箩,在1999年第一個提出了IoT這個概念。
協(xié)議位置
TCP是OSI第四層的傳輸層協(xié)議恤煞。
MQTT是基于TCP的七層應用層協(xié)議屎勘。
協(xié)議定位
TCP設計考慮的是面向連接的、可靠的居扒、基于字節(jié)流的傳輸層通信協(xié)議概漱。
MQTT則是在低帶寬高延遲不可靠的網(wǎng)絡下進行數(shù)據(jù)相對可靠傳輸?shù)膽脤訁f(xié)議。
設計思想
TCP的核心思想是分組交換喜喂。
MQTT的核心思想是簡單并適應物聯(lián)網(wǎng)環(huán)境瓤摧。
傳輸單位
TCP的傳輸單位是packet竿裂,當應用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)摹⒂?位字節(jié)表示的數(shù)據(jù)流照弥,TCP則把數(shù)據(jù)流分割成適當長度的報文段腻异,最大傳輸段大小(MSS)通常受該計算機連接的網(wǎng)絡的數(shù)據(jù)鏈路層的最大傳送單元(MTU)限制这揣。
MQTT的傳輸單位是消息捂掰,每條消息字節(jié)上限在MQTT Broker代理服務器上進行設置,可以設置超過1M大小的消息上限曾沈。這樣,就可以用一條消息就發(fā)送上千條采集的數(shù)據(jù)鸥昏,或者比較大的設備陰影文件塞俱。
技術挑戰(zhàn)
TCP需要解決的問題是在IP包傳輸過程中,處理異構網(wǎng)絡環(huán)境下的網(wǎng)絡擁塞吏垮、丟包障涯、亂序、重復包等多種問題膳汪。
MQTT解決的問題是唯蝶,在低帶寬高延遲不可靠的網(wǎng)絡下和資源有限的硬件環(huán)境內(nèi),進行相對可靠的數(shù)據(jù)傳輸遗嗽。
服務質(zhì)量
TCP是一個可靠的流傳輸服務粘我,通過ACK確認和重傳機制,能夠保證發(fā)送的所有字節(jié)在接收時是完全一樣的痹换,并且字節(jié)順序也是正確的征字。
MQTT提供三種可選的消息發(fā)布的QoS服務等級。MQTT客戶端和MQTT代理服務器通過session機制保證消息的傳輸可靠性娇豫。開發(fā)人員可以根據(jù)業(yè)務需要選擇其中一種匙姜。
應用案例
TCP用于許多互聯(lián)網(wǎng)應用程序,如WWW冯痢、email氮昧、FTP、SSH浦楣、P2P袖肥、流媒體。MQTT也是基于TCP的振劳。
MQTT可以用于物聯(lián)網(wǎng)數(shù)據(jù)傳輸昭伸、IM聊天軟件等。
常見問答題
1.MQTT三種消息發(fā)布服務質(zhì)量(QoS)分別是什么?有什么特點澎迎?
2.WebSocket與MQTT有什么區(qū)別庐杨?
3.如何理解B/S架構與C/S架構选调,分別有什么特點?
4.云計算有哪些特點?
5.TCP/IP協(xié)議與Http協(xié)議的區(qū)別 ?
編程題常見問題
1.設計云端服務器使用springboot框架利用http協(xié)議利用restful風格實現(xiàn)接收發(fā)送json格式數(shù)據(jù)灵份,并返回數(shù)據(jù)到客戶端仁堪。請寫出controller層實現(xiàn)數(shù)據(jù)接收的代碼
2.利用websocket技術利用代碼實現(xiàn)一對多,一對一通信