發布日期:2022-04-17 點擊率:73
本文是基于嵌入式物聯網研發工程師的視覺對網絡編程和web編程進行闡述。對于專注J2EE后端服務開發的童鞋們來說,這篇文章可能稍顯簡單。但是網絡編程和web編程對于絕大部分嵌入式物聯網工程師來說是一塊真空領域。
的確,物聯網研發應該以團隊協作分工的方式進行,所以有嵌入式設備端、網關、web前端、APP、后端開發等專屬崗位。作為系統架構師,自然需要掌握各種崗位的關鍵技術。作為嵌入式工程師,掌握網絡編程、web編程,能夠極大地拓展自己的視野和架構思維,能夠主動地對系統的各種協議和應用場景提出優化的見解,而不僅僅是接受任務攤派。至少,能夠在不需要依賴后端工程師的情況,能夠快速搭建一個物聯網demo系統。因此,掌握一些基本的網絡編程、web編程技能,對于提升物聯網研發工程師的開發能力是非常重要的。
本文可以視為嵌入式企鵝圈發布微信Wifi 接入解決方案的首篇原創技術分享。微信Wifi接入方案系列技術分享將于2016年春節后陸續公開,敬請關注。本篇文章對物聯網涉及的知識進行概述,之后的文章再進行詳細的指導開發。
一、 OSI七層模型和TCP/IP四層模型
OSI七層模型是網絡協議的理論研究模型,或者可以稱為理想的模型,而TCP/IP四層模型才是事實標準,是已經被廣泛使用的模型。兩者之間的關聯圖示如下:
對于兩種模型的解讀,我想說的是作為開發人員不必強行去理解各層的含義,例如會話層負責什么,表示層負責什么。當你在開發過程中沒有涉及到這些層次所解決的問題的時候,你想理解并記住是比較困難的。但是,當你遇到問題并需要去解決的時候,這時你一定會對這些層次的職責非常清晰。
衡量一個物聯網平臺或者協議是否實用的非常關鍵的因素是它提供的消息觸達能力,其直接影響物聯網應用開發。所以,我們從消息觸達能力去分析TCP/IP這個事實標準模型。我們設想以下場景,并進行分析。
1.網絡接口層。路由器1和wifi音箱、空調、熱水器組成一個家庭局域網,其使用wifi(802.11)協議進行通信。該協議定義了物理信號、數據幀格式、丟包重發機制、流量控制等等。這些都是網絡接口層的任務。還有,多個設備共享信道,同時發數據會產生沖突,它是怎么解決的,這也是網絡接口層的內容。其實,物聯網工程師不必在意這些內容。因為wifi物理信號方面的內容是由wifi芯片廠商負責,而wifi單芯片(wifi+SOC)則會提供SDK包并提供SOCKET編程接口了。所以,我們職責的重點是關注網絡層以上的編程開發知識。
2.網絡層,即IP協議,最基礎的認識是每個IP對應一個物聯設備、手機或者一個后方服務器。原則上一個網卡對應一個IP,如圖中wifi音箱、wifi熱水器均有一個獨立的IP。網絡之間的通信都是基于IP進行的,網絡包會通過路由器最終送到目標IP所對應的設備上。
Wifi音箱等家庭設備加入家庭局域網,其實是各獲得一個局域網IP,192.168.*.*,包括路由器1也有一個局域網地址,但是路由器1還有一個互聯網IP。只有路由器的互聯網IP才能被外界所獲知,外界是不能主動獲知局域網IP具體對應哪個設備的,只有路由器1才知道,因此所有對外發送的數據包的源IP都是路由器1的互聯網IP,外界發送給設備的數據包的目標IP也是路由器的互聯網IP。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV