Kifaa kiko nyuma ya rauta ya nyumbani bila uelekezaji wa bandari na bila anwani ya umma, na bado kinapaswa kupokea usanidi ndani ya sekunde. Ujanja si tundu kwenye firewall. Ni muunganisho ambao kifaa hufungua kuelekea nje kwa broker kinachoweza kufikia, na huyo hurudisha ujumbe kupitia njia hiyo hiyo iliyoimarishwa. Kila sifa ambayo watu huipenda katika muundo huu, na kila mtego ndani yake, hutokana na ubadilishaji huo.

Kinachopita kwenye NAT kwa kweli

Kifaa kinapofungua muunganisho wa TCP kwa broker, rauta ya nyumbani huunda ramani na kuihifadhi hai kwa muda wote wa mtiririko. Majibu kwenye mtiririko huo hurudi kwa kifaa kwa sababu ramani tayari ipo. Broker huwahi kuanzisha chochote kuelekea nyumbani, kwa hiyo hakuna pakiti inayoingia bila kuombwa ambayo rauta inapaswa kuikataa. Hiyo ni hoja yote ya mtandao, na ndiyo sababu mbinu hii inafanya kazi kwenye mitandao usiyodhibiti.

Kifaa lazima kiweke muunganisho hai au kiusimamishe upya, na hilo huwa swali la kutegemewa mara muundo unapokwisha kubainika.

Broker huelekeza mada, haifanyi proxy ya HTTP

MQTT hufafanua mabadilishano ya kuchapisha na kujisajili: kifaa hujisajili kwa kichujio cha mada kinachoruhusiwa kusoma, na kidhibiti kilichoidhinishwa huchapisha kwenye mada inayolingana. Broker hulinganisha machapisho na usajili na kuwasilisha nakala. Haijui ombi la kivinjari ni nini, na haitapeleka HTTP GET kwa seva ya wavuti ya kifaa. Ikiwa firmware iliyopo inazungumza HTTP pekee, muundo wa broker unahitaji mabadiliko ya programu au sehemu ya tafsiri iliyokusudiwa.

Majina ya mada pia si idhini. Broker nyingi husaidia orodha za udhibiti wa ufikiaji kwa kila mteja, na vifaa vinapaswa kuwekewa mipaka kwa miti yao wenyewe ya kuchapisha na kujisajili badala ya kushiriki nafasi moja ya majina ya kimataifa.

Rasilimali za kifaa huamua umbo la TLS

ESP8266 ina RAM ndogo, na makubaliano ya mkono ya TLS ni jambo la gharama kubwa zaidi analofanya. Msingi wa Arduino hutoa BearSSL hasa kwa sababu ya kikwazo hiki, na uchaguzi kati ya kuthibitisha CA na kubandika alama ya kidole hubadilisha alama ya kumbukumbu na kile ambacho mshambuliaji aliye na cheti halali kwa jina lingine anaweza kufanya. Kuthibitisha CA ya broker ni chaguo imara zaidi wakati lundo linaruhusu. Ukubwa wa mzigo pia ni muhimu: mteja wa MQTT hushikilia bafa, na ujumbe mkubwa kuliko hiyo hukatwa kimya kimya isipokuwa bafa iongezwe kwa makusudi.

Keepalive na muda wa mwisho wa soketi ni sehemu ya bajeti hiyo hiyo, kwa sababu mteja asiyegundua muunganisho uliokufa haachi kupokea amri bila kuripoti hitilafu.

Maana ya ujumbe inayouma

Ujumbe uliohifadhiwa huhifadhiwa na broker na huwasilishwa kwa waliojisajili wanaolingana baadaye, jambo ambalo ni bora kwa hali ya sasa na hatari kwa amri za mara moja: kifaa kinachounganisha tena kinaweza kupokea amri ya jana kana kwamba ni mpya. QoS 1 huhakikisha uwasilishaji angalau mara moja, kwa hiyo nakala ni kawaida na programu lazima iwe salama kwa kurudia, ikiwezekana kwa kitambulisho au muhuri wa muda inaoweza kukataa. Wosia wa mwisho hukupa ishara ya hali kifaa kinapoanguka, lakini tu ikiwa muunganisho unashindwa kweli badala ya kuning'inia.

Tabia ya kikao safi huamua kama broker huhifadhi usajili wako wakati haupo, na kukosea hapo ndiyo sababu vifaa vingine hukosa ujumbe wa kwanza baada ya kila muunganisho upya.

TLS hulinda sehemu hadi broker. Si usimbaji fiche wa mzigo kutoka mwanzo hadi mwisho dhidi ya mwendeshaji wa broker, anayeweza kusoma kila kitu unachochapisha kupitia hiyo.

Punguza mzunguko wa maisha na uujaribu kwa data isiyo na madhara

Panga muunganisho upya kwa kurudi nyuma badala ya mzunguko mkali wa kujaribu tena, jisajili upya kwa uwazi ikiwa kikao si cha kudumu, na andika matokeo ya muunganisho ili kifaa kimyakimya kisichokuwa mtandaoni kiachie ushahidi. Jaribu njia ya muunganisho upya kwa mizigo ya mfano isiyofanya chochote, kwa sababu jaribio la kwanza la uzalishaji la kituo cha amri halipaswi kuwa amri halisi. Kisha thibitisha kile ujumbe uliohifadhiwa uliopitwa na wakati hufanya wakati wa muunganisho upya, na amua kama tabia hiyo inakubalika kwa kila mada.

Ikifanywa hivi, muundo huondoa hitaji moja la mtandao linaloingia na huacha programu ya kifaa, sera ya broker na maana ya ujumbe kama kazi inayoonekana badala ya dhana zilizofichwa.

Makala zinazohusiana