9.3. สายเคเบิลและเฟรม¶
สองชั้นล่างสุดของสแต็กเป็นชั้นที่ง่ายที่สุดที่จะมองข้ามบนกล้อง เพราะทุกอย่างที่ทำนั้นเกิดขึ้นภายในชิปและกล้องจัดการให้โดยไม่ต้องใช้โค้ด Python ใดๆ แต่ก็ยังคุ้มค่าที่จะทำความเข้าใจโดยย่อ เพราะชั้นเหล่านี้อธิบายความหมายของ "เครือข่ายท้องถิ่น" และขอบเขตที่เชื่อมต่อกับโครงสร้างพื้นฐานที่เหลืออยู่ที่ใด
9.3.1. ชั้นกายภาพ¶
ชั้นล่างสุดคือการส่งสัญญาณจริง ได้แก่ สายไฟ เส้นใยแก้วนำแสง หรือคลื่นวิทยุที่พาบิตระหว่างอุปกรณ์สองชิ้น Ethernet ผ่านสายคู่บิดเกลียวเข้ารหัสแต่ละบิตเป็นการเปลี่ยนแปลงแรงดันไฟฟ้าที่อัตราคงที่ Wi-Fi มอดูเลตบิตเดิมไปยังคลื่นพาหะวิทยุในย่านความถี่ 2.4 GHz หรือ 5 GHz ทั้งสองผลิตกระแสของตัวเลขฐานสองระหว่างฮาร์ดแวร์สองชิ้น และทั้งสองเป็นรายละเอียดที่ซิลิกอนของกล้องจัดการโดยไม่ต้องให้ซอฟต์แวร์คิดถึง
จากมุมมองของสคริปต์ Python ชั้นกายภาพคือ "ลิงก์ทำงานอยู่" หรือ "ลิงก์ไม่ทำงาน" โมดูล network รายงานสถานะนั้นผ่านเมธอด isconnected() บนอินเทอร์เฟซ Wi-Fi และผ่านสถานะลิงก์บนอินเทอร์เฟซ Ethernet แบบมีสาย นอกจากนี้ทุกอย่างที่ชั้นนี้ทำจะถูกซ่อนไว้
9.3.2. ชั้นลิงก์¶
ชั้นถัดขึ้นมาหนึ่งขั้นคือ ชั้นลิงก์ ซึ่งเป็นกฎสำหรับการส่งกลุ่มไบต์ (เฟรม) ระหว่างอุปกรณ์สองชิ้นที่ใช้เซกเมนต์กายภาพเดียวกัน ชั้นลิงก์เพิ่มสองสิ่งบนสัญญาณดิบ:
การกำหนดที่อยู่ฮาร์ดแวร์ อินเทอร์เฟซเครือข่ายทุกตัวมาพร้อมกับตัวระบุ 48 บิตที่ไม่ซ้ำกันเรียกว่า ที่อยู่ MAC (Media Access Control) บน Ethernet จะถูกเขียนไว้ในชิป บน Wi-Fi เป็นตัวระบุประเภทเดียวกันที่ถูกเขียนไว้ในโมดูลไร้สาย ที่อยู่ MAC คือสิ่งที่ สวิตช์ ซึ่งเป็นกล่องที่มีพอร์ต Ethernet หลายพอร์ตที่อุปกรณ์ใกล้เคียงเชื่อมต่อเข้า ใช้เพื่อตัดสินใจว่าเฟรมที่ได้รับควรออกไปทางพอร์ตใด จุดเชื่อมต่อ Wi-Fi ทำหน้าที่เดียวกันสำหรับอุปกรณ์ไร้สายบนช่องสัญญาณของมัน
การจัดเฟรม ไบต์ที่ชั้นบนส่งลงมาจะถูกบรรจุในเฟรมพร้อมส่วนหัวขนาดเล็ก เพย์โหลด และเช็กซัมที่ท้าย ส่วนหัวบรรจุที่อยู่ MAC ต้นทางและปลายทาง เช็กซัมช่วยให้ผู้รับตรวจจับเฟรมที่ไบต์เสียหายระหว่างการส่ง เฟรมที่ตรวจสอบไม่ผ่านจะถูกทิ้งอย่างเงียบๆ ผู้ที่ต้องการความน่าเชื่อถือต้องจัดการที่ชั้นบนขึ้นไป
เซกเมนต์ท้องถิ่น คือกลุ่มอุปกรณ์ที่สามารถเห็นเฟรมของกันและกันได้โดยตรง ไม่ว่าจะเป็นพอร์ตแบบมีสายบนสวิตช์เดียว อุปกรณ์ทั้งหมดที่เชื่อมต่อกับจุดเชื่อมต่อ Wi-Fi เดียว หรือกลุ่มเล็กๆ ของสวิตช์ที่เชื่อมต่อกัน ชั้นลิงก์ไม่สามารถเข้าถึงนอกเซกเมนต์นั้นได้ ทันทีที่ปลายทางอยู่ในเซกเมนต์อื่น ข้อความต้องถูกส่งต่อไปยังชั้นบน
9.3.3. สิ่งที่กล้องเปิดเผย¶
กล้องมีที่อยู่ MAC สำหรับแต่ละอินเทอร์เฟซเครือข่ายที่มี ไม่ว่าจะเป็น Wi-Fi หากกล้องรองรับไร้สาย หรือ Ethernet หากบอร์ดมีพอร์ตที่ตรงกัน โมดูล network ให้การเข้าถึงผ่าน network_interface.config("mac") บนออบเจ็กต์อินเทอร์เฟซที่แอปพลิเคชันใช้อยู่ เมื่อต้องอ่านที่อยู่ บางแอปพลิเคชันจำเป็นต้องทำ เช่น เพื่อลงทะเบียนอุปกรณ์กับระบบจัดการฝูง ในกรณีอื่นๆ นี่คือปุ่มเดียวที่ชั้นลิงก์มอบให้ Python
ทุกอย่างอื่น ไม่ว่าจะเป็นการจัดเฟรม ทราฟฟิก MAC จริงบนสายหรืออากาศ การเจรจาระหว่างกล้องและจุดเชื่อมต่อเกี่ยวกับช่องสัญญาณและอัตราที่จะใช้ ล้วนเกิดขึ้นภายในฮาร์ดแวร์ไร้สายหรือ Ethernet ทั้งหมด หน้าถัดไป ครอบคลุมสถานที่เดียวที่สคริปต์ Python มีส่วนร่วมในชั้นลิงก์ นั่นคือการบอกกล้องว่าควรเข้าร่วมเครือข่ายใด