9.1. لماذا الشبكات

أتاح التحكم بالعتاد للكاميرا طرقًا للتحدث إلى جهاز آخر محدد على سلك آخر محدد. UART بين الكاميرا ولوحة مرافِقة واحدة. وI2C بين الكاميرا والمستشعرات المتصلة بالناقل القصير نفسه. وCAN بين مجموعة صغيرة من الوحدات تتشارك ناقلًا متينًا واحدًا. وتتبع كل حالة الشكل نفسه: طرفان (أو مجموعة صغيرة معروفة)، ووسط مشترك واحد، واتفاق بينهما حول معنى البايتات على ذلك الوسط.

9.1.1. هذا الشكل يتوقف عن التوسع

يعمل نمط النقطة إلى النقطة طالما أن الطرفين قريبان، وأن الطرفين معروفان مسبقًا، وأن البرنامج النصي يستطيع اختيار أي سلك يتحدث عبره. وما إن ينكسر أي من هذه القيود، حتى يتوقف التوصيل عن أن يكون كافيًا.

  • نظراء كثيرون. شبكة من خمسين كاميرا تُبلّغ خادمًا واحدًا لا يمكن توصيلها واحدة بواحدة؛ فليس على الخادم ما يكفي من منافذ UART، وستكون امتدادات الكابلات مستحيلة.

  • نظراء ليسوا على السلك نفسه. كاميرا في مصنع ولوحة قيادة في مكتب في الجهة الأخرى من المدينة لا يمكنهما تشارك كابل تسلسلي. لا بد من وجود مسار ما بينهما عبر أي بنية تحتية تمتد أصلًا بين المبنيين.

  • نظراء غير معروفين مسبقًا. كاميرا تنشر نتائجها إلى السحابة لا تختار أي خادم تتحدث إليه في مخطط التوصيل؛ بل عنوان السحابة هو شيء يبحث عنه البرنامج النصي أثناء التشغيل ويوجّه البيانات إليه.

  • برامج كثيرة على كابل واحد. يشغّل حاسوب محمول اليوم متصفحًا وتطبيق محادثة ومكالمة فيديو ونسخة احتياطية، وكلها تتحدث عبر واجهة الشبكة نفسها في الوقت نفسه. ولا يمكن أن "تمتلك" محادثة واحدة السلك كما تمتلكه UART.

كل إخفاق من تلك الإخفاقات هو نوع مختلف من مشكلة العنونة. وحلها جميعًا معًا يتطلب أكثر من سلك ومعدل باود.

9.1.2. ما الشبكة

الشبكة هي البنية التحتية التي تتيح لأي حاسوب من عدد كبير من الحواسيب أن يتبادل الرسائل مع أي حاسوب آخر، دون أن يحتاج كل زوج إلى وصلته المخصصة الخاصة. وثلاث خصائص تجعل الشبكة شيئًا أكثر من كابل تسلسلي كبير:

  • وسط مشترك. تتصل أجهزة كثيرة بالكابل أو المبدّل أو القناة الراديوية نفسها. وتتناوب أو تُجري التعددية بحيث يمكن لأكثر من محادثة أن تتسع على الوصلة المادية نفسها.

  • عناوين منطقية. لكل جهاز رقم يُعرّفه بصرف النظر عن الكابل الموصول به. وإرسال رسالة يعني كتابة ذلك الرقم على الرسالة، لا توصيل سلك محدد.

  • التوجيه. عندما لا يكون المرسِل والمستقبِل على المقطع المحلي نفسه، تحمل البنية التحتية الواقعة بينهما الرسالة قفزةً قفزة. ولا تعرف نقطتا النهاية المسار؛ بل تعرف كل منهما عنوان الأخرى فقط.

حاسوب محمول على شبكة Wi-Fi في المكتب يصل إلى خادم في مركز بيانات بعيد يستخدم الخصائص الثلاث جميعًا. فوصلة Wi-Fi وسط راديوي مشترك؛ وللحاسوب المحمول والخادم كل منهما عنوانه المنطقي الخاص؛ وتمر الرسالة عبر أي بنية تحتية تقع بين الاثنين، مُمرَّرةً قفزةً واحدة في كل مرة. ينقر المستخدم على رابط، فيرسل الحاسوب المحمول حزمة، وتتولى الشبكة الباقي.

9.1.3. ماذا عن الكاميرا؟

تؤدي الكاميرا الدور نفسه تمامًا على الشبكة كالحاسوب المحمول. فهي تلتقط عنوانًا منطقيًا عند انضمامها إلى الشبكة، وتوجّه الرسائل الصادرة إلى العناوين المنطقية للأجهزة الأخرى، وتترك للبنية التحتية توجيهها.

ما يتغير مقارنةً بفصول التحكم بالعتاد هو الواجهة. فبدلًا من فتح نسخة UART وكتابة بايتات إليها، يفتح البرنامج النصي مقبسًا ويكتب البايتات إليه. والمقبس نقطة نهاية في الشبكة، تمامًا كما أن نسخة UART نقطة نهاية في سلك. أما القطع الواقعة بين المقبس والسلك -- الإطارات والحزم وجداول التوجيه والمبدّلات وأجهزة الراديو -- فكلها تقبع تحته وهي غير مرئية في الغالب لشيفرة Python.

تشرح الصفحات المقبلة تلك القطع، طبقةً طبقة، بحيث يبدو التجريد "افتح مقبسًا وأرسل بايتات" حتميًا بدلًا من أن يبدو سحرًا.