تعرف على الشبكات الافتراضية أنواعها وتطبيقاتها




بعض البرامج الموجودة على أجهزتنا مثل برنامج الـ Skype وبرنامج الـ Torrent وغيرها، وكل يوم يظهر برنامج يحتاج إلى عمل شبكة خاصة بمستخدمي هذا البرنامج وشبكة خاصة بذلك البرنامج ولكل واحدة طبيعتها المختلفة عن الأخرى وهذا يعني الحاجة إلى وجود العديد من الشبكات على الانترنت. وبالطبع ليس من المنطق أن نقوم بتغيير بروتوكولات الانترنت لتتلاءم مع كل شبكة أو برنامج وهذا ما جعل المهتمين يركزون جهدهم على الشبكات الافتراضية.
فأكثرنا استعمل الشبكات الافتراضية (اقصد بشكل عام وليس الـ VPN بالتحديد)، ولكن البعض لا يعرف بطبيعتها ولا كيفية عملها و حتى لا يعلم أنها شبكات افتراضية، لهذا في هذا المقال سنتعرف عليها وطريقة عملها ونتناول تطبيقات خاصة منها.
Virtual network-1فالشبكات الافتراضية هي شبكات يتم إنشائها فوق شبكة موجودة مسبقا مثل الانترنت. وكل شبكة تخصص لبرنامج معين، فمثلا شبكة تدعم برامج multimedia streaming كما في برنامج BBC iPlayer وشبكة خاصة ببرامج الألعاب الاونلاين Multiplayer Online Games مثل برنامج Hamachi و Tunngle وتوجد برامج أخرى لإغراض مختلفة مثل برامج Cloud Computing وغيرها. وجميع هذه الشبكات يتم إنشاءها من دون تغيير على شبكة الانترنت وكل واحدة لها طرق عنونة مختلفة بعناوين تسمى Logical IPs وبروتوكولاتها وطرق الـrouting  الخاصة بها تختلف من شبكة إلى أخرى.
من الفوائد الأخرى للشبكات الوهمية أنها تساعد على بناء شبكات لغرض التجارب والأبحاث مثلا وتكييفها حسب الرغبة أو حسب البرنامج المستخدم إضافة إلى إمكانية توسيعها أو تغييرها حسب الحاجة.


من العيوب التي تنقص مثل هذه الشبكات هو إن الوصول للجهاز المطلوب يكون غير مباشر وهذا يؤدي إلى التقليل من أداءها إلى جانب كونها أكثر تعقيدا مقارنة بالشبكات التقليدية. ولكنها تتشابه معها في أنها تتكون من طبقات غير انها تختلف عن طبقات الـ OSI Model المعروفة، وهي من الأعلى IP Layer و SONET/SDH Layer و Optical Layer و Site Layer. وكما مر سابقا فان عملية الـRouting  تترك لمصمم الشبكة، لذلك توجد عدة خوارزميات لهذا الغرض وحسب البرنامج الذي يتم تطويره فمثلا هناك طريقة للـ Routing تسمى بـ Key-Based Routing وتعني بشكل مختصر إن الجهاز في الشبكة إما لديه العنوان أو key المطلوب أو لديه لنك إلى جهاز قريب من الجهاز الذي لديه العنوان المطلوب وتتم العملية هذه عبر جدول يسمى Distributed Hash Table. أما الـ topology المستخدمة فتختلف حسب المصمم ولكن بشكل عام تعتبر الـ Ring هي أكثر topology شائعة الاستخدام.
 Virtual network-2
أخيرا سوف نتعرف عن قرب على أكثر الشبكات الوهمية نجاحا وهي الـ Skype وكيف تستغل هذه الشركة أجهزتنا وتليها نظرة سريعة على شبكات مشاركة الملفات Torrent.

Skype
Virtual network-3يعتبر الـ Skype من برامج Peer to Peer ويقدم خدمات الـ VOIP إضافة إلى دعمه لخدمات الشات instant messaging ومكالمات الفيديو video conference. تم تطوير هذا البرنامج في عام 2003 و يتجاوز عدد مستخدميه 663 مليون مستخدم حسب إحصائيات 2010 ويتوقع أن يصل إلى 1 مليار بحلول عام 2015. وبهذا تعتبر الـ Skype من اكبر الشبكات الوهمية في العالم وهذا يبين مدى التعقيد في بناء هذه الشبكة.
عند استخدام هذا البرنامج لا يحتاج المستخدم إلى IP الجهاز الآخر لبدء الاتصال حيث تتم العملية أوتوماتيكيا كما سنتعرف عليها بعد قليل. أما المعمارية التي تم إنشاء شبكة Skype وفقها فهي غير معلنة للعامة ولكن أصبحت مفتوحة للجميع بعد أن قام عدد من الباحثين بدراستها وتحليل الترافيك والاتصالات. حيث تتكون من نوعين من الأجهزة الخاصة بالمستخدمين أو بمصطلح الشبكات nodes، وهي المستخدم العادي أو الـ node normal والنوع الآخر يسمى super node وهو نفس الـ node العادي ولكن يتميز بإمكانيات معينة يتم اختيار هذه الـ nodes وفقها مثل سرعة الاتصال لهذا الـ node مع الانترنت وإمكانية الوصول المباشر لهذا الـ node أو بمعنى آخر يجب أن لا يستعمل الـ NAT في عنونته ويكون الـIP  الخاص به هو نفسه global IP إضافة إلى طول المدة الذي يتواجد فيه هذا الـ node وبالطبع كلما يزداد وقت استعمال الـ skype بشكل متواصل يزداد احتمالية اختيار هذا المستخدم كـ Super node.
 Virtual network-4
عند فتح برنامج الـ skype والبدء بالاتصال بالسيرفر يقوم السيرفر بتدقيق الـ username والـ password ومن ثم يحدد نوع الـ node، فإذا كانت node عادي يرسل قائمة تحتوي على عناوين حوالي سبعة من الأجهزة الـ super تخزن في cache الجهاز العادي ويزداد هذا العدد بمرور الوقت وقد يصل إلى المئات. أهم فائدة من هذا الـ super (وهنا تتم عملية استغلال أجهزة المستخدمين) هي عند عمل مكالمة بين طرفين يقوم المستخدم الأول بالاتصال بأحد الـ super والتي تحتوي بدورها على عناوين مجموعة من المستخدمين العاديين، يبحث الـsuper  بقائمة العناوين التي لديه فإذا لم يجد عنده عنوان المستخدم الآخر يتعاون مع باقي الـ super nodes في إيجاده، وبشكل عام كل ثمانية super nodes تتعاون فيما بينها لإيجاد عنوان معين.


بعد أن يتم إيجاد المستخدم الآخر تبدأ المكالمة بين الطرفين حيث يستعمل الـ skype بروتوكول TCP في إنشاء الاتصال وإنهاءه بينما يستعمل أما TCP أو UDP في نقل الملتيميديا. الخوارزمية المتطورة المستعملة في عملية التشفير encoding وفك التشفير decoding عند نقل الصوت هي سبب تفوق الـ skype بالجودة العالية في نقل الصوت والتي تفوق 32Kbps.

BitTorrent
Virtual network-5البرنامج الآخر الذي يعتبر كمثال لشبكة تستعمل مبدأ الشبكات الافتراضية هو الـ BitTorrent. يعتبر BitTorrent من أشهر برامج مشاركة الملفات Peer to Peer وهو مصمم بشكل عام لتحميل الملفات الكبيرة الحجم وخصوصا ملفات الفيديو التي يجري تشغيلها لاحقا وليس العرض المباشر Real Time Streaming.

يعتمد الـ BitTorrent بالأساس على تقسيم الملفات إلى أجزاء ذات حجم ثابت تسمى chunks، وتنتشر هذه الأجزاء أو الـ chunks على عدة أجهزة ويستطيع المستخدم تحميل الملف على شكل chunks من عدة أجهزة وبشكل متوازي Parallel مما يقلل الحمل أو Load على سيرفر واحد ولا ننسى إن الـ BitTorrent يستعمل أجهزة المستخدمين العادية كسيرفرات لباقي الأجهزة الأخرى وهذا يجعل سرعة الاستجابة محددة بإمكانيات هذه الأجهزة ويظهر واضحا عند تحميل فايل تكثر عليه الطلبات، وعلى الرغم من هذا إلا انه يعتبر أفضل من السيرفر الواحد عند استعمال الـ HTTP مثلا.
لنتعمق قليلا في طريقة عمل الـ BitTorrent، فعندما يضاف فايل إلى الـ BitTorrent يقوم بعمل فايل بامتداد (.torrent)  يحتوي على معلومات تسمى metadata وهي:
  • اسم وطول الملف.
  • عنوان الـ tracker وهو عبارة عن URL السيرفر المركزي الذي يقوم بإدارة التحميلات.
  • الـ checksum لكل chunk ويتم توليده باستخدام خوارزمية تسمى SHA-1 hashing algorithm حيث يفحص كل chunk بعد اكتمال تحميله.
 وكما مر قبل قليل فان الـ BitTorrent يجمع بين Peer to Peer في عملية النقل وبين Client-Server في عملية إدارة التحميلات عن طريق الـ tracker. ولكي نفهم كيفية عمل الBitTorrent سنتعرف على دورة حياة فايل معين يتم تحميله عبر الBitTorrent:
أولا وقبل كل شي لنتعرف على بعض المصطلحات، فكل مستخدم أو جهاز لديه جميع أجزاء الفايل أو الفايل بكامله يسمى seeder، والجهاز صاحب أول نسخة من الفايل يقوم بتوزيعه على الباقين. أما المستخدم الذي سوف يقوم بالتحميل فيسمى leecher وقد يكون لديه أجزاء من الفايل. وبعد أن يكمل تحميل جميع أجزاء الفايل يتحول إلى seeder ليخدم باقي leechers وهكذا. لذلك فالـ tracker لديه معلومات عن جميع seeders و leechers وهذه الثلاثة مجتمعة تسمى torrent.
 Virtual network-6
الآن نفرض أن مستخدم يريد تحميل فايل معين، بداية يقوم بالاتصال بالـ tracker حيث يقوم الأخير بتزويد المستخدم بالأجهزة التي لديها هذا الملف. إلى هنا ينتهي عمل الـ tracker ويتحول الاتصال من client-server إلى peer to peer، ومن ثم تبدأ عملية النقل من المستخدمين الآخرين ولا يشترط تحميل أجزاء الملف بشكل متسلسل.
وبما إن الـ BitTorrent يعتمد على ميزة المشاركة للملفات، فهو حاله حال باقي بروتوكولات Peer to Peer يعتمد بالأساس على الأشخاص الذين يقومون بالمشاركة وروح المساعدة لديهم، فبعضهم يغلق البرنامج أو يمسح الفايل بمجرد اكتمال تحميله. لذلك وللتغلب على هذه المشكلة يقوم النظام بالية تدعم روح التعاون تسمى tit-for-tat وهي تقدم أفضلية في التحميل للأشخاص الذين شاركوا سابقا برفع ملفات للنظام أو حاليا يشاركون بالرفع وتوجد آليات أخرى تشترط أن تكون نسبة الرفع upload بمقدار معين من نسبة التحميل download لكي يستطيع التحميل.
 Virtual network-7
ختاما بعد تناولنا لهذه البرامج أتوقع تغيرت نظرتكم لها وخصوصا إن الكثير منا يريد معرفة طريقة عمل البرامج التي يستخدمها و إن شاء الله يكون عندي الوقت الكافي (لانشغالي بالدراسة والامتحانات) في الأعداد القادمة من المجلة لأشرح الكيفية التي تعمل عليها برامج أخرى تستعمل الشبكات الافتراضية في عملها.
المصدر : http://www.networkset.net/2013/01/24/virtual-network