تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] طرق الاتصال عبر الشبكة المحلية
#1
Star 
هذا الموضوع يشرح بإيجاز طرق التواصل بين الحواسيب عبر الشبكة المحلية
وتبادل المعلومات وبعض المفاهيم الأساسية المتعلقة


بسم الله الرحمن الرحيم


الشبكة المحلية :
هي مجموعة أجهزة مرتبطة مع بعضها عبر نقطة وصول معينة ويمكنها التواصل وتبادل المعلومات فيما بينها وقد تكون نقطة الوصول hup أو router أو غيرها .

ولكل جهاز متصل بالشبكة عنوان يميزه عن باقي الاجهزة يسمى IP Address مثلا "192.168.1.100"
ولإنشاء إتصال من حاسوب مع حاسوب آخر مرتبط بنفس الشبكة نحتاج إلى معرفة عنوان الحاسوب البعيد ثم إختيار منفذ port .

المنفذ port :
هو أشبه ما يكون بطريق تنتقل المعلومات من خلاله
في كل حاسوب منافذ كثيرة للإتصالات تصل الى 65535 منفذ ونحتاج أن نختار واحداً منها ليس قيد الاستخدام
ولكي نحسن الاختيار لابد من معرفة الآتي :
1- أول 1024 منفذ (0-1023) خاصة بالنظام لا يفضل إستخدامها في برامجنا
2- آخر 16384 منفذ (49152-65535) هي منافذ ديناميكية تستخدم تلقائيا عند الاتصال وتتغير بعد كل عملية إرسال لا يفضل استخدامها أيضا
3- المنافذ في المدى (1024-49151) هي المنافذ المتاحة عادة للتطبيقات

هنالك عدة أنواع للإتصال ولكل نوع محاسن وعيوب :
1- TCP : هذا النوع شائع ومهم جداً لأنه يضمن نقل البيانات كاملة بدون نقصان ويستخدم لنقل الملفات وهو يعتمد طريقة إعادة إرسال الحزم التي فشلت في الوصول الى الطرف الآخر حيث ينتظر ردا منه ليتأكد من وصول حزم البيانات سالمة . لذلك فهذا الأتصال تميزه الدقة ويعيبه البطئ . يحتاج إلى عقد جلسة لبدأ الإتصال بين الطرفين قبل الشروع بنقل البيانات Connection type .
2- UDP : هذا النوع لا يحتاج إلى عقد إتصال مع الطرف الآخر ولا يحتاج إلى معرفة عنوانه ولا يهمه الطرف الآخر أساساً فهو يبث البيانات في جميع أنحاء الشبكة لكي يستلمها من يهمه الأمر Connectionless type . لذلك فهو لا يعرف إن وصلت البيانات بسلام أو لا فهو يضحي بالدقة ويربح السرعة .
وهو على نوعين :
1- UDP Broadcast : سهل وسريع يبث البيانات في كل أنحاء الشبكة لكن لا يمكنه العبور إلى شبكة أخرى متصلة
2- UDP Multicast : يبث البيانات على عنوان IP معين من الشبكة يسمى multicast group address بعد أن ينضم الى هذه المجموعة ويستطيع استلام البيانات كل من إنضم الى نفس المجموعة . هذا النوع يمكنه العبور الى الشبكات الاخرى الأعم المتصلة بشبكتنا الفرعية

لاحظ الشبكتين في الصورة , يمكن لاتصال TCP و اتصال UDP تخطي حاجز الراوتر والتواصل بين الشبكتين , بينما لا يحق لـUDP Broadcast ذلك .


في البرمجة هناك طريقتين لكتابة الكود :
1- Synchronous متزامنة : وهي الطريقة الطبيعية والسهلة عن طريق استدعاء الإجراء Socket.Send للارسال و Socket.Receive للاستلام وينتظر التطبيق إكتمال عملية الارسال او الاستلام ويبدو متوقفا idle خلال فترة الانتظار. يمكن استدعاء هذه الاجراءات (خصوصا Socket.Receive) في مسار thread اخر لتجنب هذه الحالة .
2- Asynchronous غير متزامنة : اصعب قليلا من حيث كتابة الكود لكنها اسرع ولا يبدو التطبيق متوقفا لأنه لن ينتظر النتائج مباشرة بل يرسل عنوان اجراء معين ليتعامل مع النتائج حال وصولها , عن طريق الاجراءات Socket.BeginSend و Socket.BeginReceive ثم استلام النتائج في اجراء آخر عن طريق Socket.EndSend و Socket.EndReceive , وكذا بقية الاجراءات يمكن تجنب التأخير المتوقع منها بإستخدام الطريقة غير المتزامنة .

سأشرح تفاصيل البرمجة بكل الطرق المذكورة TCP و UDP Broadcast و UDP Multicast
في مواضيع لاحقة إن شاء الله

أتمنى أن أكون قد أضفت شيئاً لمعلوماتكم  Blush
<يعطيك العافية>
الرد



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم