9.3. Kabel a rámec#

Dvě nejnižší vrstvy zásobníku jsou na kameře nejsnáze přehlédnutelné, protože vše, co dělají, se odehrává uvnitř čipu a kamera je obstará bez jakéhokoli zásahu kódu v Pythonu. Přesto stojí za to si je krátce projít, protože vysvětlují, co znamená „místní síť“ a kde začíná hranice se zbytkem infrastruktury.

9.3.1. Fyzická vrstva#

Nejnižší vrstvou je samotné přenášení signálu – vodiče, optická vlákna nebo rádiové vlny, které přenášejí bity mezi dvěma zařízeními. Ethernet po kroucené dvojlince kóduje každý bit jako přechod napětí s pevnou rychlostí. Wi-Fi tytéž bity moduluje na rádiovou nosnou v pásmu 2,4 GHz nebo 5 GHz. Obojí mezi dvěma kusy hardwaru produkuje proud binárních číslic; obojí je druh detailu, který křemík kamery zvládne, aniž by o tom software musel přemýšlet.

Z pohledu skriptu v Pythonu je fyzická vrstva buď „spoj je aktivní“, nebo „spoj je neaktivní“. Modul network tento stav hlásí prostřednictvím své metody isconnected() na rozhraní Wi-Fi a prostřednictvím stavu spoje na drátovém ethernetovém rozhraní. Kromě toho je vše ostatní, co tato vrstva dělá, skryté.

9.3.3. Co kamera zpřístupňuje#

Kamera má MAC adresu pro každé síťové rozhraní, které má – jednu pro Wi-Fi, pokud má kamera bezdrátovou podporu, a jednu pro Ethernet, pokud má deska odpovídající port. Modul network k ní poskytuje přístup přes network_interface.config("mac") na tom rozhraní, které aplikace používá, když potřebuje adresu přečíst. Některé aplikace to potřebují, například k registraci zařízení v systému pro správu flotily zařízení. Jinak je to jediný ovládací prvek, který linková vrstva předává Pythonu.

Vše ostatní – skládání do rámců, vlastní MAC provoz na drátu nebo ve vzduchu, vyjednávání mezi kamerou a přístupovým bodem o tom, který kanál a rychlost použít – se odehrává zcela uvnitř bezdrátového nebo ethernetového hardwaru. Další stránka pokrývá jediné místo, kde skript v Pythonu do linkové vrstvy zasahuje: říká kameře, k jaké síti se má připojit.