9.3. Kabel i sličica¶
Dva najniža sloja stoga najlakše je uzeti zdravo za gotovo na kameri, jer se sve što oni rade odvija unutar čipa, a kamera ih obrađuje bez ikakvog Python koda. Ipak ih vrijedi ukratko obići, jer objašnjavaju što znači „lokalna mreža” i gdje počinje granica prema ostatku infrastrukture.
9.3.1. Fizički sloj¶
Najniži sloj je samo signaliziranje – žice, optička vlakna ili radio valovi koji prenose bitove između dva uređaja. Ethernet preko upletenih parica kodira svaki bit kao naponski prijelaz pri fiksnoj brzini. Wi-Fi modulira iste bitove na radio nosioca u pojasu od 2,4 GHz ili 5 GHz. Oba proizvode niz binarnih znamenki između dva komada hardvera; oba su upravo onaj tip detalja koji silicij kamere obrađuje, a da softver o tome ne mora razmišljati.
Iz perspektive Python skripte fizički sloj je „veza je uspostavljena” ili „veza je prekinuta”. Modul network izvještava o tom stanju putem svoje metode isconnected() na Wi-Fi sučelju te putem statusa veze na žičanom Ethernet sučelju. Sve ostalo što ovaj sloj radi skriveno je.
9.3.2. Sloj veze¶
Korak iznad nalazi se sloj veze – pravila za slanje skupa bajtova (sličice) između dva uređaja koji dijele isti fizički segment. Sloj veze dodaje dvije stvari povrh sirovog signaliziranja:
Hardversko adresiranje. Svako mrežno sučelje dolazi s jedinstvenim 48-bitnim identifikatorom zvanim MAC adresa (Media Access Control). Na Ethernetu je upisana u čip; na Wi-Fiju je to isti tip identifikatora upisan u bežični modul. MAC adrese su ono što preklopnik (switch) – kutija s više Ethernet priključaka u koje se uključuju obližnji uređaji – koristi da odluči na koji priključak treba poslati pojedinu sličicu. Wi-Fi pristupna točka igra istu ulogu za bežične uređaje na svom kanalu.
Oblikovanje sličica. Bajtovi koje viši sloj predaje pakiraju se u sličicu s malim zaglavljem, korisnim teretom i kontrolnim zbrojem na kraju. Zaglavlje nosi izvorišnu i odredišnu MAC adresu; kontrolni zbroj omogućuje primatelju da otkrije sličicu čiji su bajtovi bili oštećeni u prijenosu. Sličice koje ne prođu provjeru tiho se odbacuju – tko god mari za pouzdanost mora je vratiti na nekom višem sloju.
Lokalni segment je bilo koja skupina uređaja koji mogu izravno vidjeti međusobne sličice – žičani priključci na jednom preklopniku, svi uređaji povezani s jednom Wi-Fi pristupnom točkom ili mala mreža međusobno povezanih preklopnika. Sloj veze ne može doseći izvan tog segmenta. Čim odredište leži na drugom segmentu, poruka se mora predati sloju iznad.
9.3.3. Što kamera izlaže¶
Kamera ima MAC adresu za svako mrežno sučelje koje posjeduje – Wi-Fi adresu ako kamera ima bežičnu podršku, Ethernet adresu ako pločica ima odgovarajući priključak. Modul network omogućuje pristup njoj putem network_interface.config("mac") na onom objektu sučelja koje aplikacija koristi, kada treba pročitati adresu. Nekim aplikacijama to je potrebno, na primjer kako bi registrirale uređaj u sustavu za upravljanje flotom. Inače je to jedina poluga koju sloj veze predaje Pythonu.
Sve ostalo – oblikovanje sličica, sam MAC promet na žici ili u zraku, pregovaranje između kamere i pristupne točke o tome koji kanal i brzinu koristiti – odvija se u potpunosti unutar bežičnog ili Ethernet hardvera. Sljedeća stranica pokriva jedino mjesto na kojem Python skripta ipak ima utjecaj na sloj veze: govorenje kameri kojoj se mreži treba pridružiti.