تعتبر الشبكات المعرفة برمجيًّا، وهو ما يطلق عليها باللغة الإنجليزية (Software-Defined Networking)، واختصاراً (SDN) أنها طريقة للتحكم بالشبكة مركزيًا. وحتى نفهم عمل هذه الشبكات، فإننا نبدأ بتعريف بعض المصطلحات التي تُساعد في فهم هذه الشبكات وهي:
في أنظمة الشبكات التقليدية، تتطلب أجهزة الشبكة عتاد قوي لمعالجة واتخاذ القرارات، وحفظ جداول التوجيه وقوائم الوصول، بالإضافة إلى عتاد قوي لتمرير الرزم كما هو موضح في الشكل رقم 1؛ مما يجعل ثمن أجهزة الشبكة مرتفع.
من جهة أخرى – وكما ذُكِر آنفاً – فإن أجهزة الشبكة تحوي على جداول التوجيه وقوائم الوصول في كل جهاز على حده؛ مما يقود إلى اللامركزية في الشبكة (Decentralization) والتي تعني أن كل جهاز يتم تهيئته على حدة.
عندما يزيد عدد أجهزة الشبكات على نطاق الشبكات الكبرى فإن يصعب اكتشاف الأخطاء والمشاكل. بالإضافة إلى ذلك، عند إضافة جهاز في الشبكة يجب أن تُهَيَّأ جميع أجهزة الشبكة مع الجهاز الجديد حتى تعمل بتناغم.
في دراسة سابقة، ذُكر أن عدد أجهزة الشبكة إلى عدد مهندسي الشبكات يعادل 37 جهاز إلى مهندس واحد في عام 2014، وارتفعت هذه النسبة في 2015 إلى 59 جهاز شبكي إلى مهندس شبكات واحد! مما يعني زيادة بمقدار 60%، وهذا الارتفاع في عدد الأجهزة يؤدي إلى الحاجة إلى عدد هائل من مهندسي الشبكات، مما يحد من تطور الشبكة.
توفر الشبكات المعرفة برمجيًّا مزايا للشبكة مما يسهل تهيئتها وإدارتها بتكلفة أقل وكفاءة أعلى، لتتواكب مع متطلبات العصر الحالي للتقنية الذي يتطلب عدد أكبر بكثير من السابق من أجهزة الشبكة.
الشبكات المعرفة برمجيًّا تفصل الطبقة المتخذة للقرار والتي تعّد بمثابة العقل المدبر للشبكة، وطبقة التنفيذ والتي تعّد بمثابة القوى الجسمانية للشبكة، عن طريق إضافة مركز تحكم للشبكة (Controller) يعطي رؤية كاملة لأجهزة الشبكة والقيود المفروضة عليها كما هو موضح في الشكل رقم 2.
تتكون الشبكات المعرفة برمجيًّا من ثلاث طبقات (من الأعلى للأسفل): طبقة التطبيقات (Application plane)، طبقة التحكم (Control Plane)، طبقة البنية التحتية (Infrastructure plane) والتي تحتوي على طبقة التنفيذ.
حين يطلب المستخدم الاتصال بجهة ما، يقوم جهاز الشبكة بالتواصل مع جهاز التحكم لتحديد المسار المخصص لرزم البيانات وتطبيق القيود عليها، ثم تتم عملية الاتصال.
الفصل بين طبقتي التحكم والتنفيذ استدعى وجود بروتوكول ينظم التواصل بين الطبقتين، ولأن الشبكات المعرفة برمجياًّ تم اعتمادها من قبل منظمة Open Networking Forum (ONF) والتي تتكون من مجموعة من الشركات؛ كان لزاماً أن يتم الاتفاق على بروتوكول يتعامل مع طبقة التحكم وطبقة البنية التحتية.
يقوم بروتوكول (OpenFlow) بتحديد مسار الرزم بناء على قواعد محددة مسبقاً بواسطة مهندس الشبكة. إضافة إلى ذلك، يحدد البروتوكول الوظيفة المناسبة (Action) كأن يقوم المُبَدّل (Switch) بتمرير رزمة البيانات (Forward)، أو تجاهلها (Drop).
ولأن الشبكات المعرفة برمجيًا هي نموذج حديث من الشبكات، فأبرز الصعوبات هي الانتقال إلى استخدامها بسبب وجود أجهزة تعمل في الوقت الحالي على النظام التقليدي. أيضاً انتقال رزم البيانات من المبدّلات إلى المتحكم ينشأ عنه بطء (Delay) بسبب المركزية في اتخاذ القرارات.
بمقارنة الشبكة المعرفة برمجياً بالشبكات التقليدية: يمكن أن يتم التفريق بين النوعين في أن الشبكات المعرفة برمجيًا يمكن تهيئتها أثناء عمل الشبكة بشكل أسهل. إضافة إلى ذلك فإن ميزة المركزية في التحكم (والتي تعتبر من مقومات نجاح هذا النوع من الشبكات) تساعد على تقليل تكلفة تشغيل وإدارة الشبكة. أيضًا عند تصميم الشبكة، يستلزم التركيز على الخدمات التي يقدمها مركز التحكم بالشبكة، بصرف النظر عن أنواع ومصنّعي المبدلات المستخدمة في الشبكة؛ وذلك بسبب أن الشبكة تعمل على بروتوكول (OpenFlow) المتّفَق عليه من قِبَل المصنّعين.
أما في الشبكات التقليدية: فيصعب تهيئتها وقت عملها، وذلك يتطلب إيقاف الشبكة وقت التهيئة. أيضاً على صعيد التحكم، فالشبكات التقليدية يجب تهيئة كل جهاز على حدة. ومن ناحية اكتشاف الأخطاء، فهذه معضلة الشبكات التقليدية؛ حيث أن اكتشاف الأخطاء يتطلب وقتاً طويلاً.
هذا المقال هو بالتعاون مع الدكتور باسل السدحان أستاذ مقرر شبكات الاتصالات بقسم الهندسة الكهربائية بكلية الهندسة بجامعة الملك سعود في نشر مقالات الطلاب في الموقع
المراجع:
https://www.tech-wd.com/wd/2019/02/06/software-defined-network-sdn/