اتصال غير مهيأ
الاتصال غير المُهيّأ أو الاتصال غير المُكرّس[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]
- إنشاء مقبس في المُخدّم، باستخدام الدالة (()socket)، يجب تحديد عائلة العناوين المستخدمة ونوع المقبس. في هذه الحالة، تكون عائلة العناوين المُستخدمة هي عائلة عناوين الإنترنت، التي يُشار إليها بالثابت (AF_INET)، ونوع المقبس هو مقبس حزم بيانات (Datagram socket)، ويُشار إليه بالثابت (SOCK_DGRAM).
- استخدام الدالة (()bind) من أجل تخصيص اسم مميز للمقبس.
- استخدام الدالة (()recvfrom) لانتظار استقبال البيانات من العميل، تجعل هذه الدالة المقبس في حالة انتظار إلى حين بدء ورود البيانات.
- استخدام الدالة (()sendto)، لإرسال الردّ المُناسب إلى العميل، يتعلّق الردّ بنوع الخدمة التي يُقدمّها المُخدّم.
- إغلاق القناة باستخدام الدالة (()close).
مراحل إعداد الاتصال غير المهيأ في طرف العميل
فيما يلي الخطوات الأساسية اللازم اتباعها لإعداد طرف العميل لإنشاء قنوات اتصال غير مُهيأ:[17]
- إنشاء مقبس في العميل، باستخدام الدالة (()socket)، يجب أن تتطابق عائلة العناوين ونوع المقبس مع تلك المُستخدمة في المخدّم. في هذه الحالة، تكون عائلة العناوين المُستخدمة هي عائلة عناوين الإنترنت، التي يُشار إليها بالثابت (AF_INET)، ونوع المقبس هو مقبس حزم بيانات (Datagram socket)، ويُشار إليه بالثابت (SOCK_DGRAM).
- يملك العميل اسم المُخدّم، ولابد من الحصول على عنوانه من أجل الاتصال به، من أجل ذلك تُستخدم الدالة (()gethostbyname)، ويتمّ الاعتماد على خدمة نظام أسماء النطاقات (DNS)[18] للقيام بذلك.
- استخدام الدالة (()sendto) لإرسال البيانات إلى المُخدّم.
- استخدام الدالة (()recvfrom) لانتظار استقبال الردّ من المُخدّم، تجعل هذه الدالة المقبس في حالة انتظار إلى حين بدء ورود البيانات.
يتعلّق الردّ بنوع االخدمة التي يُقدمّها المُخدّم.
- إغلاق القناة باستخدام الدالة (()close).
أمثلة
من الأمثلة على البروتوكولات التي تنشئ قنوات اتصال غير مُهيّئة: بروتوكول حزم بيانات المُستخدم (UDP) والإصدار الرابع من بروتوكول الإنترنت (IPv4).[19] ينُشئ بروتوكول رسائل التحكم في شبكة الإنترنت (ICMP)[20] قنوات اتصال غير مُهيئة أيضاً وبسبب بُنية رسائل البروتوكول وعدم إمكانيّة تعقّبها فإنّها تشكل ثغرة أمنيّة لهجمات[21] مثل هجوم حجب الخدمة (DoS).[22]
في حزمة بروتوكولات الإنترنت (TCP/IP)،[23] يعمل بروتوكول الإنترنت على مستوى طبقة الإنترنت، وهو بروتوكول يُؤمّن نقلاً غير موثوق للبيانات عير قنوات اتصال غير مُهيّأة. أمّا بروتوكول التحكّم بالنقل (TCP)،[24] فهو يعمل على مستوى طبقة النقل ويُنشئ قنوات اتصال مُهيّئة من أجل نقل موثُوق للبيانات باستخدام آليّة خاصّة هي المُصافحة الثُلاثيّة (Three Way Handshaking)، عند عمل الحزمة، يعتمد بروتوكول الإنترنت على بروتوكول التحكم بالنقل في تأمين الوثوقيّة. بشكلٍ مُشابه، في حزمة بروتوكولات نوفل (IPX/SPX)، يُؤمّن بروتوكول تبادل رزم الشبكات (IPX)[25] نقلاً غير موثوقاً لرزم البيانات ويعتمد على بروتوكول الرزم المُتتابعة (SPX) في إنشاء قنوات اتصال مُهيئة لتأمين نقل موثوق للرزم.
انظر أيضاً
- قناة الاتصال.
- الاتصال المُهيّأ.
- نموذج طلب الخدمة (Client/Server).
- نموذج الاتصال المعياري (OSI).
- حزمة بروتوكولات الإنترنت (TCP/IP).
مراجع
- "معنى كلمة connectionless في قاموس ومعجم المعاني الجامِع"، موقع المعاني، مؤرشف من الأصل في 28 أغسطس 2017، اطلع عليه بتاريخ 27 أغسطس 2017.
- Lyman Chapin, A. (يوليو 1981)، "RFC 787, Connectionless Data Transmission Survey/Tutorial"، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 31 مارس 2019، اطلع عليه بتاريخ 27 أغسطس 2017.
- "TCP/IP Core Protocols"، Microsoft (باللغة الإنجليزية)، مؤرشف من الأصل في 25 أغسطس 2017، اطلع عليه بتاريخ 27 أغسطس 2017.
- Adolfo Rodriguez؛ John Gatrell؛ John Karas؛ Roland Peschke (2001)، TCP/IP Tutorial and Technical Overview (PDF) (باللغة الإنجليزية) (ط. السابعة)، Prentice Hall، ص. 8، ISBN 0130676101، مؤرشف من الأصل (PDF) في 26 سبتمبر 2018.
- 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.
{{استشهاد بكتاب}}
: صيانة CS1: أسماء متعددة: قائمة المؤلفون (link) - Information technology -- Open systems interconnection -- Transport service definition (باللغة الإنجليزية) (ط. الثالثة)، ISO، 1996، مؤرشف من الأصل في 28 أغسطس 2017.
- Information processing systems -- Open Systems Interconnection -- Protocol for providing the connectionless-mode transport service (باللغة الإنجليزية) (ط. الأولى)، ISO، 1987، مؤرشف من الأصل في 28 أغسطس 2017.
- 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.
- "connectionless mode transmission"، Institute for Telecommunication Sciences (باللغة الإنجليزية)، 23 أغسطس 1996، مؤرشف من الأصل في 5 مارس 2013، اطلع عليه بتاريخ 27 أغسطس 2017.
- "How sockets work"، International Business Machines (IBM) Corporation (باللغة الإنجليزية)، مؤرشف من الأصل في 26 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- "Creating a connectionless socket"، International Business Machines (IBM) Corporation (باللغة الإنجليزية)، مؤرشف من الأصل في 23 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- Postal, J. (أغسطس 1980)، "RFC 768, User Datagram Protocol"، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 29 سبتمبر 2018، اطلع عليه بتاريخ 27 أغسطس 2017.
- "sys/socket.h - Internet Protocol family"، The Open Group (باللغة الإنجليزية)، مؤرشف من الأصل في 26 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- "Class Socket"، Oracle (باللغة الإنجليزية)، مؤرشف من الأصل في 26 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- "17.2. socket — Low-level networking interface"، Python Software Foundation. (باللغة الإنجليزية)، مؤرشف من الأصل في 27 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- "Example: A connectionless server"، International Business Machines (IBM) Corporation (باللغة الإنجليزية)، مؤرشف من الأصل في 28 أغسطس 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- "Example: A connectionless client"، International Business Machines (IBM) Corporation (باللغة الإنجليزية)، مؤرشف من الأصل في 17 يوليو 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- Mockapetris, P. (نوفمبر 1987)، "RFC 1035, Domain names - implementation and specification"، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 01 يوليو 2017، اطلع عليه بتاريخ 28 أغسطس 2017.
- Postel, J. (سبتمبر 1981)، "RFC 791, Internet Protocol, DARPA Internet Program Protocol Specification"، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 19 مايو 2019، اطلع عليه بتاريخ 27 أغسطس 2017.
- Postal, J. (أغسطس 1981)، "RFC 792, Internet Control Message protocol, DARPA internet program,protocol specification."، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 20 أبريل 2019، اطلع عليه بتاريخ 27 أغسطس 2017.
- Cliff Riggs (2003)، Network Perimeter Security: Building Defense In-Depth (باللغة الإنجليزية) (ط. الأولى)، Auerbach Publications، ص. 85، ISBN 0849316286.
- McDowell, Mindi (2009)، "Security Tip (ST04-015), Understanding Denial-of-Service Attacks"، United States Coomputer Emergency Readiness Team (US-CERT) (باللغة الإنجليزية)، مؤرشف من الأصل في 20 أبريل 2019، اطلع عليه بتاريخ 31 يوليو 2017.
{{استشهاد ويب}}
: صيانة CS1: التاريخ والسنة (link) - Socolofsky, T.؛ Kale, C. (يناير1991)، "RFC 1180, A TCP/IP Tutorial."، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 28 مارس 2019، اطلع عليه بتاريخ 27 أغسطس 2017.
{{استشهاد ويب}}
: تحقق من التاريخ في:|تاريخ=
(مساعدة) - Postal, J. (سبتمبر 1981)، "RFC 793, Transmission control protocol, DARPA internet program,protocol specification."، The Internet Society (باللغة الإنجليزية)، مؤرشف من الأصل في 05 مايو 2019، اطلع عليه بتاريخ 27 أغسطس 2017.
- James, Rahner (مايو 1992)، "IPX: the great communicator"، Dr. Dobb's Journal، CMP Media, Inc.، 17 (5): 46-52.
وصلات خارجية
- إنشاء مقابس لقتوات اتصال غير مُهيّأة، مقالة من من أي بي أم (IBM).
- مقارنة بين الاتصال المُهيأ والاتصال غير المُهيأ، مقالة من مايكروسوفت.
- الاتصال غير المُهيأ، مقالة من مشروع معلومات لينوكس.
- بوابة إنترنت
- بوابة اتصال عن بعد
- بوابة تقنية المعلومات
- بوابة علم الحاسوب