اتصال غير مهيأ

من أرابيكا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
قناة اتصال غير مُهيّأ بين بروتوكولين يعملان بحسب نموذج اتصال طبقي.

الاتصال غير المُهيّأ أو الاتصال غير المُكرّس[1] أو الاتصال غير المربُوط أو الاتصال غير المُعدّ (بالإنجليزية: Connectionless communcation أو CL-mode Communication)‏ هي طريقة لنقل البيانات في شبكات تبديل الرزم، وفيها يجري نقل كل وحدة مُعطيات بشكلٍ مُستقل بين المصدر والوجهة بدون أيّ تفاوضٍ أو اتفاقٍ مُسبق، ولا يُوجد فيها أيّ ضمانٍ أو تأمين بأنّ البيانات ستصل إلى وجهتها بعد إرسالها.[2] أيّ لا يتمّ تأسيس ولا الحفاظ على ولا إنهاء جلسة اتصال بين الطرفين قبل البدء بتبادل البيانات.[3]

يُنشئ هذا النوع من الاتصالات بين بروتوكولين يعملان في نفس الطبقة في نموذج في المصدر والوجهة. يُمكن لبروتوكول يُنشئ اتصالاً غير مُهيّأ يعمل في الطبقة (N) من النموذج أن يطلب خدمة تهيئة الاتصال من بروتوكول آخر يعمل في طبقة أعلى، مثلاً الطبقة (N+1) من نفس النموذج، وهي عمليّة شائعة في شبكة الإنترنت.[4] تمتاز البروتوكولات التي تُنشئ قنوات اتصال غير مُهيأ بحجم ترويسات أقل، بالإضافة لكونها مُناسبة للبث العام والبثّ المجموعاتي.[5]

تشرح وثيقة طلب التعليقات (RFC 787)[2] عملية نقل البيانات عبر قنوات اتصال غير مُهيأة، أمّا المعيار (ISO 8072/AD1)[6] فيصفّ خدمة نقل البيانات عبر قنوات اتصال غير مُهيأة، في حين خُصص المعيار (ISO 8602)[7] لبيان عمل بروتوكولات الاتصال غير المُهيأة.

تعاريف

في المُراجعات الخاصّة بنموذج الاتصال المعياري ورد تعريفان لنقل البيانات عبر قنوات الاتصال غير المُهيئة،[8] الأول هو تعريف مُرتبط ببنية النموذج والثاني بالخدمة التي تقدّمها القناة. وجاء التعريف الأول كما يلي:" نقل البيانات عبر قنوات عير مُهيّأة هو نقل وحدة بيانات في الطبقة (N) من المصدر إلى الطبقة (N) في وجهة واحدة أو أكثر بدون تأسيس اتصال لنقل البيانات على مستوى الطبقة (N)."، أمّا التعريف المتعلّق بالخدمة فقد ورد بالشكل التالي: "خدمة نقل البيانات عبر قنوات الاتصال غير المُهيأة في الطبقة (N) هي خدمة تحقق عملية نقل وحدة مُعطيات وحيدة مستقلة في الطبقة (N) عبر (N+1) طبقة بين طرفين..."، كما شملت التعاريف التمييز بشكلٍ دقيق بين عمليات نقل (Transmit) وتحويل (Transfer) وتبادل (Exchange) البيانات عبر القنوات غير المُهيئة.

يُعرّف المعيار الفيدرالي (1037C) الخاص بمُصطلحات الاتصالات نمط النقل غير المُهيأ بأنّه: "عمليّة نقل يتم فيها ترميز الرزمة مع ترويسة تحتوي على عنوان الوجهة بشكلٍ مُناسبٍ للسماح بتوصيلها بشكلٍ مُستقل بدون أي تعليمات إضافيّة"، كما يُشير المعيار إلى أنّ مزوّد الخدمة لا يستطيع عادةً أن يضمن عدم حصول ضياع أو أخطاء أو توصيل بغير ترتيب الإرسال، مع إمكانية تخفيف هذه الآثار بالاعتماد على بروتوكول يؤمّن نقلاً موثوقاً للبيانات في طبقة أعلى.[9]

إنشاء قنوات الاتصال غير المهيأ باستخدام المقابس

في نموذج طلب الخدمة، بشكلٍ عام، يجري استضافة المُخدّم بشكلٍ مُستقلٍ عن استضافة العملاء الذين يتصلون معه، ثم يحصلون على الخدمة وأخيراً يُنهون الاتصال، قد تكون قنوات الاتصال التي يتمّ إنشاؤها مُهيّئة أو غير مُهيئة. على أيّة حال، تستخدم المقابس لإنشاء قنوات الاتصال. في نموذج الإنترنت تُشكّل المقابس واجهة الوصل بين طبقة التطبيق وطبقة النقل.[10] من أجل الاتصال غير المُهيأ، لا تُؤسس المقابس قناة اتصال لتعبرها البيانات، ولكن يُحدد المُخدّم اسماً للقناة، ويمكن للعميل أن يرسل البيانات إليه.[11] تعتمد عملية إعداد الاتصال غير المُهيّأ على بروتوكول حزم بيانات المُستخدم (UDP).[12]

يُقدّم الطرح التالي مثالاً عن كيفيّة إعداد قناة اتصال غير مُهيّأ بين طرفين أحدهُما يلعب دور العميل، والآخر يلعب دور المُخدّم في نموذج طلب الخدمة، يفترض المثال أنّ إعدادات الشبكة تعمل بشكلٍ سليم، وبأنّ كل من العميل والمخدّم يستضيفان عنواناً من عناوين الشبكة. إنّ العبارات البرمجيّة الواردة في هذا القسم مُتوافقة مع المكتبة البرمجية الخاصّة بالمقابس (sys/socket.h) في نظام التشغيل يونكس.[13] توفّر العديد من لغات البرمجة الأخرى دعماً لإنشاء المقابس أيضاً.[14][15]

مخطط زمني لبيان تتابع الدوال عند إنشاء قناة اتصال غير مُهيّأ باستخدام مقابس بحسب نموذج طلب الخدمة.

مراحل إعداد الاتصال غير المُهيأ في طرف المُخدّم

فيما يلي الخطوات الأساسية اللازم اتباعها لإعداد طرف المُخدم لإنشاء قنوات اتصال غير مُهيأ:[16]

  1. إنشاء مقبس في المُخدّم، باستخدام الدالة (()socket)، يجب تحديد عائلة العناوين المستخدمة ونوع المقبس. في هذه الحالة، تكون عائلة العناوين المُستخدمة هي عائلة عناوين الإنترنت، التي يُشار إليها بالثابت (AF_INET)، ونوع المقبس هو مقبس حزم بيانات (Datagram socket)، ويُشار إليه بالثابت (SOCK_DGRAM).
  2. استخدام الدالة (()bind) من أجل تخصيص اسم مميز للمقبس.
  3. استخدام الدالة (()recvfrom) لانتظار استقبال البيانات من العميل، تجعل هذه الدالة المقبس في حالة انتظار إلى حين بدء ورود البيانات.
  4. استخدام الدالة (()sendto)، لإرسال الردّ المُناسب إلى العميل، يتعلّق الردّ بنوع الخدمة التي يُقدمّها المُخدّم.
  5. إغلاق القناة باستخدام الدالة (()close).

مراحل إعداد الاتصال غير المهيأ في طرف العميل

فيما يلي الخطوات الأساسية اللازم اتباعها لإعداد طرف العميل لإنشاء قنوات اتصال غير مُهيأ:[17]

  1. إنشاء مقبس في العميل، باستخدام الدالة (()socket)، يجب أن تتطابق عائلة العناوين ونوع المقبس مع تلك المُستخدمة في المخدّم. في هذه الحالة، تكون عائلة العناوين المُستخدمة هي عائلة عناوين الإنترنت، التي يُشار إليها بالثابت (AF_INET)، ونوع المقبس هو مقبس حزم بيانات (Datagram socket)، ويُشار إليه بالثابت (SOCK_DGRAM).
  2. يملك العميل اسم المُخدّم، ولابد من الحصول على عنوانه من أجل الاتصال به، من أجل ذلك تُستخدم الدالة (()gethostbyname)، ويتمّ الاعتماد على خدمة نظام أسماء النطاقات (DNS)[18] للقيام بذلك.
  3. استخدام الدالة (()sendto) لإرسال البيانات إلى المُخدّم.
  4. استخدام الدالة (()recvfrom) لانتظار استقبال الردّ من المُخدّم، تجعل هذه الدالة المقبس في حالة انتظار إلى حين بدء ورود البيانات.

يتعلّق الردّ بنوع االخدمة التي يُقدمّها المُخدّم.

  1. إغلاق القناة باستخدام الدالة (()close).

أمثلة

من الأمثلة على البروتوكولات التي تنشئ قنوات اتصال غير مُهيّئة: بروتوكول حزم بيانات المُستخدم (UDP) والإصدار الرابع من بروتوكول الإنترنت (IPv4).[19] ينُشئ بروتوكول رسائل التحكم في شبكة الإنترنت (ICMP)[20] قنوات اتصال غير مُهيئة أيضاً وبسبب بُنية رسائل البروتوكول وعدم إمكانيّة تعقّبها فإنّها تشكل ثغرة أمنيّة لهجمات[21] مثل هجوم حجب الخدمة (DoS).[22]

في حزمة بروتوكولات الإنترنت (TCP/IP)،[23] يعمل بروتوكول الإنترنت على مستوى طبقة الإنترنت، وهو بروتوكول يُؤمّن نقلاً غير موثوق للبيانات عير قنوات اتصال غير مُهيّأة. أمّا بروتوكول التحكّم بالنقل (TCP)،[24] فهو يعمل على مستوى طبقة النقل ويُنشئ قنوات اتصال مُهيّئة من أجل نقل موثُوق للبيانات باستخدام آليّة خاصّة هي المُصافحة الثُلاثيّة (Three Way Handshaking)، عند عمل الحزمة، يعتمد بروتوكول الإنترنت على بروتوكول التحكم بالنقل في تأمين الوثوقيّة. بشكلٍ مُشابه، في حزمة بروتوكولات نوفل (IPX/SPX)، يُؤمّن بروتوكول تبادل رزم الشبكات (IPX)[25] نقلاً غير موثوقاً لرزم البيانات ويعتمد على بروتوكول الرزم المُتتابعة (SPX) في إنشاء قنوات اتصال مُهيئة لتأمين نقل موثوق للرزم.

انظر أيضاً

مراجع

  1. ^ "معنى كلمة connectionless في قاموس ومعجم المعاني الجامِع". موقع المعاني. مؤرشف من الأصل في 2017-08-28. اطلع عليه بتاريخ 2017-08-27.
  2. ^ أ ب Lyman Chapin, A. (Jul 1981). "RFC 787, Connectionless Data Transmission Survey/Tutorial". The Internet Society (بEnglish). Archived from the original on 2019-03-31. Retrieved 2017-08-27.
  3. ^ "TCP/IP Core Protocols". Microsoft (بEnglish). Archived from the original on 2017-08-25. Retrieved 2017-08-27.
  4. ^ Adolfo Rodriguez; John Gatrell; John Karas; Roland Peschke (2001). TCP/IP Tutorial and Technical Overview (PDF) (بEnglish) (السابعة ed.). Prentice Hall. p. 8. ISBN:0130676101. Archived from the original (PDF) on 2018-09-26.
  5. ^ Christian Nagel, Ajit Mungale, Vinod Kumar, Nauman Laghari, Andrew Krowczyk, Tim Parker, Srinivasa Sivakumar, Alexandru Serban (2004). Pro .NET 1.1 Network Programming (بEnglish) (الثانية ed.). Apress. p. 296. ISBN:1590593456.{{استشهاد بكتاب}}: صيانة الاستشهاد: أسماء متعددة: قائمة المؤلفين (link)
  6. ^ Information technology -- Open systems interconnection -- Transport service definition (بEnglish) (الثالثة ed.). ISO. 1996. Archived from the original on 2017-08-28.
  7. ^ Information processing systems -- Open Systems Interconnection -- Protocol for providing the connectionless-mode transport service (بEnglish) (الأولى ed.). ISO. 1987. Archived from the original on 2017-08-28.
  8. ^ desJardins، Richard (أبريل 1981). "Overview and status of the ISO reference model of open systems interconnection". ACM SIGCOMM Computer Communication Review. ACM. ج. 11 ع. 2: 10-14. DOI:10.1145/1015586.1015588.
  9. ^ "connectionless mode transmission". Institute for Telecommunication Sciences (بEnglish). 23 Aug 1996. Archived from the original on 2013-03-05. Retrieved 2017-08-27.
  10. ^ "How sockets work". International Business Machines (IBM) Corporation (بEnglish). Archived from the original on 2017-08-26. Retrieved 2017-08-28.
  11. ^ "Creating a connectionless socket". International Business Machines (IBM) Corporation (بEnglish). Archived from the original on 2017-08-23. Retrieved 2017-08-28.
  12. ^ Postal, J. (Aug 1980). "RFC 768, User Datagram Protocol". The Internet Society (بEnglish). Archived from the original on 2018-09-29. Retrieved 2017-08-27.
  13. ^ "sys/socket.h - Internet Protocol family". The Open Group (بEnglish). Archived from the original on 2017-08-26. Retrieved 2017-08-28.
  14. ^ "Class Socket". Oracle (بEnglish). Archived from the original on 2017-08-26. Retrieved 2017-08-28.
  15. ^ "17.2. socket — Low-level networking interface". Python Software Foundation. (بEnglish). Archived from the original on 2017-08-27. Retrieved 2017-08-28.
  16. ^ "Example: A connectionless server". International Business Machines (IBM) Corporation (بEnglish). Archived from the original on 2017-08-28. Retrieved 2017-08-28.
  17. ^ "Example: A connectionless client". International Business Machines (IBM) Corporation (بEnglish). Archived from the original on 2017-07-17. Retrieved 2017-08-28.
  18. ^ Mockapetris, P. (Nov 1987). "RFC 1035, Domain names - implementation and specification". The Internet Society (بEnglish). Archived from the original on 2017-07-01. Retrieved 2017-08-28.
  19. ^ Postel, J. (Sep 1981). "RFC 791, Internet Protocol, DARPA Internet Program Protocol Specification". The Internet Society (بEnglish). Archived from the original on 2019-05-19. Retrieved 2017-08-27.
  20. ^ Postal, J. (Aug 1981). "RFC 792, Internet Control Message protocol, DARPA internet program,protocol specification". The Internet Society (بEnglish). Archived from the original on 2019-04-20. Retrieved 2017-08-27.
  21. ^ Cliff Riggs (2003). Network Perimeter Security: Building Defense In-Depth (بEnglish) (الأولى ed.). Auerbach Publications. p. 85. ISBN:0849316286.
  22. ^ McDowell, Mindi (2009). "Security Tip (ST04-015), Understanding Denial-of-Service Attacks". United States Coomputer Emergency Readiness Team (US-CERT) (بEnglish). Archived from the original on 2019-04-20. Retrieved 2017-07-31.{{استشهاد ويب}}: صيانة الاستشهاد: التاريخ والسنة (link)
  23. ^ Socolofsky, T.; Kale, C. (يناير1991). "RFC 1180, A TCP/IP Tutorial". The Internet Society (بEnglish). Archived from the original on 28 مارس 2019. Retrieved 27 أغسطس 2017. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ= (help)
  24. ^ Postal, J. (Sep 1981). "RFC 793, Transmission control protocol, DARPA internet program,protocol specification". The Internet Society (بEnglish). Archived from the original on 2019-05-05. Retrieved 2017-08-27.
  25. ^ James، Rahner (مايو 1992). "IPX: the great communicator". Dr. Dobb's Journal. CMP Media, Inc. ج. 17 ع. 5: 46-52.

وصلات خارجية