افتح القائمة الرئيسية

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

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

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

وصلات خارجيةعدل