ما هو مقبس الشبكة (Network Socket) وكيف يعمل؟

مقبس الشبكةبرمجة المقابسTCP/IPعنوان المقبسبروتوكول النقلاتصالات الشبكةبرمجة الشبكات

مقبس الشبكة (Network Socket): البوابة البرمجية لاتصالات البيانات

يُعد مقبس الشبكة (Network Socket) هيكلاً برمجياً داخل عقدة في شبكة الحاسوب، يعمل كنقطة نهاية (Endpoint) لإرسال واستقبال البيانات عبر الشبكة. يتم تحديد بنية وخصائص المقبس من خلال واجهة برمجة التطبيقات (API) الخاصة بمعمارية الشبكات، ويتم إنشاء هذه المقابس فقط خلال فترة حياة عملية (Process) تابعة لتطبيق يعمل على العقدة.

فهم مفهوم المقبس

بسبب الاعتماد الواسع على بروتوكولات TCP/IP في تطوير الإنترنت، أصبح مصطلح "مقبس الشبكة" يُستخدم غالباً في سياق حزمة بروتوكولات الإنترنت، ولذلك يُشار إليه أحياناً باسم مقبس الإنترنت (Internet Socket). يتم التعرف على المقبس خارجياً من قبل المضيفين الآخرين من خلال عنوان المقبس (Socket Address)، وهو عبارة عن ثلاثية تتكون من: بروتوكول النقل، وعنوان IP، ورقم المنفذ (Port Number).

الاستخدام والتشبيه

يشبه استخدام مصطلح "المقبس" في البرمجيات وظيفة الموصل الكهربائي الأنثوي في الأجهزة، حيث يكون وسيلة للتواصل بين العقد المترابطة بكابل كهربائي. وبالمثل، يشير مصطلح "المنفذ" (Port) إلى نقاط النهاية المادية الخارجية في العقدة أو الجهاز.

كيفية عمل مقابس الشبكة

تقوم واجهة برمجة التطبيقات (API) لمجموعة بروتوكولات الشبكة بإنشاء "مقبض" (Handle) لكل مقبس يتم إنشاؤه بواسطة التطبيق، وهو ما يُعرف بـ واصف المقبس (Socket Descriptor). في أنظمة التشغيل الشبيهة بـ Unix، يكون هذا الواصف نوعاً من واصفات الملفات (File Descriptors)، حيث يتم تخزينه بواسطة عملية التطبيق لاستخدامه في كل عملية قراءة وكتابة على قناة الاتصال.

ربط المقبس والعناوين

عند إنشاء المقبس عبر واجهة برمجة التطبيقات، يتم ربطه بمزيج من: نوع بروتوكول الشبكة المستخدم للإرسال، وعنوان الشبكة للمضيف، ورقم المنفذ. تُستخدم المنافذ كموارد مرقمة تمثل أنواع الخدمات، وبمجرد إنشائها، تعمل كمكون موقع يمكن الوصول إليه خارجياً من الشبكة، مما يسمح للمضيفين الآخرين بإنشاء اتصالات.

أنواع الاتصالات عبر المقابس

  • اتصالات مستمرة (Persistent Connections): قد تكون المقابس مخصصة لاتصالات دائمة بين عقدتين.
  • اتصالات بدون اتصال (Connectionless): المشاركة في اتصالات لا تتطلب إنشاء جلسة مسبقة (مثل UDP).
  • اتصالات البث المتعدد (Multicast): إرسال البيانات إلى مجموعة من العقد في وقت واحد.

تنفيذ المقابس وبرمجتها

توفر أنظمة التشغيل عادةً "مجموعة بروتوكولات" (Protocol Stack) تسمح للعمليات بالتواصل عبر الشبكة. تقوم هذه المجموعة بتوجيه حمولة حزم IP الواردة إلى التطبيق المناسب عن طريق استخراج معلومات عنوان المقبس من رؤوس بروتوكول IP وبروتوكول النقل، ثم إزالة هذه الرؤوس من بيانات التطبيق.

برمجة المقابس (Socket Programming)

تُسمى واجهة برمجة التطبيقات التي تستخدمها البرامج للتواصل مع مجموعة البروتوكولات واجهة برمجة مقابس (Socket API). وتطوير البرامج التي تستخدم هذه الواجهة يُعرف بـ برمجة المقابس أو برمجة الشبكات. تعتمد معظم واجهات برمجة مقابس الإنترنت على معيار مقابس بيركلي (Berkeley Sockets)، والذي يتبع فلسفة Unix بأن "كل شيء هو ملف"، لذا فإن المقابس تمتلك وظائف للقراءة والكتابة والفتح والإغلاق.

مكونات عنوان المقبس في TCP/UDP

في بروتوكولات TCP وUDP، يتكون عنوان المقبس من عنوان IP ورقم المنفذ، وهو يشبه إلى حد كبير طرف اتصال هاتفي يتكون من رقم الهاتف والتحويلة الداخلية. إذا قام البرنامج بربط المقبس بعنوان مصدر، يمكن استخدامه لاستقبال البيانات المرسلة إلى ذلك العنوان.

أسئلة شائعة

ما الفرق بين المنفذ (Port) والمقبس (Socket)؟

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

ما هو عنوان المقبس (Socket Address)؟

هو المزيج الذي يحدد هوية المقبس خارجياً، ويتكون عادة من عنوان IP الخاص بالجهاز ورقم المنفذ المستخدم للاتصال.

هل يمكن للمقبس أن يعمل بدون عنوان مصدر؟

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