بروتوكول الإنترنت

بروتوكول الإنترنت (بالإنجليزية: Internet Protocol، اختصارًا: IP)‏ هو بروتوكول الاتصال الأساسي في حزمة بروتوكولات الإنترنت[1] ويُشكّل الأساس الذي تعتمد عليه عمليّة توجيه الرزم ضمن الشبكة، ويسمح ذلك بالاتصال بين الشبكات المُختلفة، وهذا هو جوهر شبكة الإنترنت.

بروتوكول الإنترنت

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

يُحدد البروتوكول بنية خاصة للرزم، تتألف من قسمين رئيسيين، هما الترويسة وقسم المُعطيات. تكون الترويسة مُقسّمة إلى عدد من الحقول، وتضمّ المعلومات اللازمة لعمل البروتوكول كرقم الإصدار وعنواني مصدر ووجهة الرزمة بالإضافة لمعلومات أخرى، أما قسم المُعطيات فيضمّ المُعطيات التي يتمّ تغليفها ضمن الرزمة.

تاريخيّاً، كان بروتوكول الإنترنت إحدى الخدمات التي تستخدم قنوات لا تتطلب تهيئة اتصال المُقدّمة من قبل بروتوكول التحكّم بالنقل[2] الذي قام كل من فينت سيرف وبوب خان بتطويره في عام 1974. لذلك فإن بروتوكول الإنترنت يعتمد على بروتوكول التحكّم بالنقل لضمان وجود اتصال مُسبق بين مختلف الأطراف، ولهذا تُوصف قنوات بروتوكول التحكّم بالنقل بأنّها تتطّلب تهيئة اتصال ونتيجة لهذه العلاقة الوظيفية، غالباً ما يُشار إلى نموذج الإنترنت بالشكل (TCP/IP).

إنّ أول إصدار مُستقل من بروتوكول الإنترنت هو الإصدار الرابع، ويُشار له اختصاراً،[3] وهو البروتوكول الأساسي في شبكة الإنترنت، الإصدار اللاحق هو الإصدار السادس، ويُشار له اختصاراً (IPv6).[4]

الوظيفة

بروتوكول الإنترنت مسؤول عن عنونة المُضيفين، ويُؤثّر ذلك بشكلٍ مباشر على عملية توجيه الرزم. تحتوي كل رزمة عنوانين هما عنوان المصدر وعنوان الوجهة. يُعرّف بروتوكول الإنترنت بنية الرزمة ونظاماً خاصاً للعنونة يُمكّنه من تمييز المُضيفين بشكلٍ فريد.

بناء الرزمة

 
تغليف مُعطيات تطبيق أثناء مرورها بطبقات نموذج الإنترنت

تتألف كُل رزمة من قسمين: الترويسة وحمل، تحتوي ترويسة بروتوكول الإنترنت على عنوان مصدر الرزمة وعنوان وجهتها بالإضافة لمعلومات أخرى تخصّ عمل البروتوكول، أما حمل فهو المُعطيات التي تنقلها الرزمة. تسمى عملية إضافة الترويسات إلى الحمل بعملية تغليفها.

العنونة والتوجيه

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

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

يمكن اعتماداً على بنية الفضاء السابقة تعريف نوعٍ خاص من التوجيه هو التوجيه المجمُوعاتي،[5] وفي هذا النوع تكون الوجهة مجموعة من المُضيفين بدلأً من مُضيفٍ واحد، ولكن ما يُميّز عناصر هذه المجموعة أنّها تستضيف عنواناً مُشتركاً يُسمّى عنوان المجموعة، وينتج عن عملية البث المجمُوعاتي إرسال الرزمة إلى جميع المُضيفين الذين يمتلكون هذا العنوان.

نبذة تاريخيّة

إنّ الإصدارت المُوجودة حالياً للبروتوكول هي الإصدار الرابع (IPv4) والإصدار السادس (IPv6).

في شهر ماي من العام 1974م، نشر معهد مُهندسي الكهرباء والإلكترونيات ورقةً بحثيّةً بعنوان: «بروتوكول للاتصال ضمن شبكات الرزم».[6] قدّم كاتبا البحث، فينت سيرف وبوب خان وصفاً لبروتوكولٍ يعمل بين الشبكات بهدف تشارك الموارد عن طريق تبديل الرزم بين عُقد الشبكة، كان برنامج التحكم بالنقل هو حجر الأساس في هذه العملية. لاحقاً تمّ تقسيم هذا البرنامج إلى وحدات بنيويّة هي بروتوكول التحكّم بالنقل وبروتوكول رزم المُستخدم[7] في طبقة النقل، وبروتوكول الإنترنت (IP) في طبقة الإنترنت. عُرف هذا النموذج بنموذج الإنترنت الخاص بوزارة الدفاع، أما اليوم فيُشار إليه بأنّه نموذج الإنترنت (TCP/IP).

إنّ الإصدارات ذوات الأرقام (0) حتى (3)، كانت إصدارات تجريبية استُخدمت العامين (1977) و (1979). فيما يلي وثائق المُلاحظات الخاصة بتجارب الإنترنت التي تصفّ إصدارات بروتوكول الإنترنت السابقة للإصدار الرابع (IPv4):

  • وثيقة المُلاحظات الخاصة بتجارب الإنترنت، رقم 2 (IEN 2): جاءت الوثيقة بعنوان: "تعليقات على بروتوكول الانترنت وبروتوكول التحكّم بالنقل (Comments on Internet Protocol and TCP) وهي مُؤرّخة في شهر أغسطس للعام 1977م، وتشدد على الحاجة للفصل بين وظائف بروتكول الانترنت (IP) ووظائف بروتوكول التحكّم بالنقل (TCP)، واقترحت الوثيقة الشكل البدائي للبروتوكول، واستخدم الرقم (0) للإشارة إلى رقم الإصدار في الترويسة المُقترحة الخاصة بالبروتوكول.
  • وثيقة المُلاحظات الخاصة بتجارب الانترنت، رقم 26 (IEN 26): جاءت الوثيقة بعنوان: "اقتراح لبنية جديدة لترويسة بروتوكول الإنترنت" (A proposed New Internet Header Format) وهي مُؤرّخة في شهر فبراير للعام 1978م، وتصف الإصدار الأول من البروتوكول (IPv1).
  • وثيقة المُلاحظات الخاصة بتجارب الانترنت، رقم 28 (IEN 28): جاءت الوثيقة بعنوان: "مسودّة توصيف الإصدار الثاني لبروتوكول الإنترنت" (Draft Internetwork Protocol Description Version 2) وهي مُؤرّخة في شهر فبراير للعام 1978م، وتصف الإصدار الثاني من البروتوكول (IPv2).
  • وثيقة المُلاحظات الخاصة بتجارب الإنترنت، رقم 41 (IEN 41): وجاءت بعنوان: "محددات الإصدار الرابع من بروتوكول الانترنت" (Internet Protocol Specification Version 4) وهي مُؤرّخة في شهر يونيو للعام 1978م، وهي أول وثيقة وصفت الإصدار الرابع من البروتوكول، ولكنّ بنية الترويسة كانت مختلفة عن الشكل النهائي الذي تمّ اعتمادُه لاحقاً.
  • وثيقة المُلاحظات الخاصة بتجارب الإنترنت، رقم 44 (IEN 44): جاءت الوثيقة بعنوان: "أحدث بُنى الترويسات" (Latest Header Format) وهي مُؤرّخة في شهر يونيو للعام 1978م، هي تصفّ شكلاً مختلفاً للإصدار الرابع من بروتوكول الإنترنت، حيث ترويسة البروتوكول المستعملة مختلفة عن الشكل المُعتمد في الإصدار الرابع من بروتوكول الإنترنت المُستخدم حالياً.
  • وثيقة المُلاحظات الخاصة بتجارب الإنترنت، رقم 54 (IEN 54): وجاءت بعنوان: "مُحددات الإصدار الرابع من بروتوكول الإنترنت" (Internet Protocol Specification Version 4) وهي مُؤرّخة في شهر سبتمبر للعام 1978م، وهي أول توصيف للإصدار الرابع من البروتوكول يتمّ فيه استخدام الترويسة المُعتمدة في الشكل النهائي للإصدار الرابع.

بروتوكول الإنترنت المُهيّمن اليوم على طبقة الإنترنت هو الإصدار الرابع من بروتوكول الإنترنت، والرقم 4 هو رقم الإصدار الذي يُوجد داخل حقل رقم الإصدار في ترويسة الرزمة في كل رزم الإصدار الرابع. الإصدار الرابع موصُوف بالوثيقة (RFC 791).

طُوّر الإصدار الخامس (IPv5) تحت مُسمى بروتوكول التدفق في شبكة الإنترنت، ولكنّه لم يتجاوز المرحلة التجريبيّة.[8] الإصدار السادس (IPv6) هو وريث الإصدار الرابع (IPv4). ويختلفان عن بعضهما البعض بشكلٍ أساسي بحجم فضاء العناوين، ففي حين يستخدم الإصدار الرابع عناوين بطول من 32 بت، وهو ما يخلق 4.3 مليار (4.3x109) عنوان متاح في فضاء العناوين، فإنّ الإصدار السادس يستخدم عناوين بطول 128 بِت، ما يسمح بوجود (3.4x1038) عنوان متاح في فضاء عناوينه. لكن الانتقال إلى العمل بالإصدار السادس يسير بوتيرة أبطأ من المتوقع.

في 1 أبريل 1994م، نشرت مجموعة مهندسي الإنترنت تقريراً يُفيد بتطوير الإصدار التاسع من بروتكول الإنترنت (IPv9) ولكن الخبر برمّته كان كذبة أبريل.[9]

الوثوقيّة

إنّ بروتوكول الإنترنت مُصمم ليدعم مفهوم العلاقة بين طرفيتين،[10] وبناءً على ذلك فإنّ بُنية الشبكة تعتبر غير موثُوقة ويشمل ذلك العُقد وأوساط النقل، كما تُوصف توافُريّة العناصر السابقة بأنّها مُتغيّرة. لأغراض تتعلّق بتقليل تعقيد الشبكة، فإنّ البروتوكول لا يدعم أيّ آليّة المُراقبة وتعقّب حالة الشبكة.

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

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

يجب أن تقوم عقد الشبكة بمُعالجة هذه الأخطاء، وفي حزمة بروتوكولات الإنترنت فإنّ مُعالجة مشاكل الوثوقيّة هي من وظائف طبقة النقل.

سعة وسط النقل والإمكانيات المتاحة

إنّ طبيعة شبكة الإنترنت والتنوع الكبير في مُكوّناتها يعني أنّه لا يوجد ضمانة بأنّ مساراً مُحدداً قد يكون قادراً على نقل المُعطيات أو مُناسِباً لعمليّة النقل، حتّى ولو كان المسار مُتاحاً للاستخدام وموثُوقاً. إنّ حجم النقل الأعظميّ المُسموح في وسطٍ ما هو أحدُ القيود التقنيّة لعملية النقل عبرَ هذا الوسط، ولا يُمكن أن يتمّ نقل رزم ذاتُ حجمٍ أكبر من حجم النقل الأعظميّ للوسط، ويجب على التطبيقات التي تستخدم هذا الوسط مُراعاة هذا القيد.

في الإصدار الرابع من بروتوكول الإنترنت، يدعم البروتوكول ميّزة التقطيع، وفيها يتمّ تقطيع رزم التي يتجاوز حجمُها حجم النقل الأعظميّ للطبقة الشبكة إلى رزمتين أو أكثر، تُسمى القِطع، جميعها بحجم أقل من الحد الأعظميّ المسمُوح، ويُؤمّن بروتوكول الإنترنت آليّة لإعادة تجميع القطع وترتيبها في الوجهة، خاصةً أنّ وصُولها بالترتيب الصحيح غيرُ مضمُونٍ.[13]

أمّا في الإصدار السادس من بروتوكول الإنترنت، فجرى تطوير آليّات أخرى تسمح باكتشاف حجم النقل الأعظميّ قبل بدء الإرسال، وبالتالي يتمّ تجنّب تجاوزه عند تغليف الرزم.[14]

الأمن والحماية

في المراحل التصميميّة لشبكة الأربانت وعند بناء الشكل البدائيّ لشبكة الإنترنت، لم يُأخذ المنظور الأمني ولا الاستخدام العام أو الدوليّ للشبكة بالحسبان. نتيجة لذلك، فإنّ العديد من بروتوكولات الإنترنت تضمّنت ثغرات أُكتشفت بعد تعرّض الشبكة لهجمات أو بعد تقييم أمنيّ لاحق. في عام 2011 م، نُشر تقريرٍ أمنيّ شامل تضمّن تقييماً أمنيّاً واقتراحاتٍ للتخفيف من أثر الثغرات الموجُودة.[15]

انظر أيضاً

المراجع

  1. ^ Socolofsky, T.; Kale, C. (يناير1991). "RFC 1180, A TCP/IP Tutorial". The Internet Society (بEnglish). Archived from the original on 2019-09-21. Retrieved 14 يوليو 2017. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ= (help)
  2. ^ Postal, J. (Sep 1981). "RFC 793, Transmission control protocol, DARPA internet program,protocol specification". The Internet Society (بEnglish). Archived from the original on 2019-09-09. Retrieved 2017-07-13.
  3. ^ Postel, J. (سبتمبر 1981). "RFC 791, Internet Protocol, DARPA Internet Program Protocol Specification". The Internet Society (بEnglish). Archived from the original on 6 أغسطس 2019. Retrieved 13 يوليو2017. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= (help)
  4. ^ Deering, S.; Hinden, R. (Dec 1998). "RFC 2460, Network Working Group: version 6 of the Internet Protocol (IPv6)". The Internet Society (بEnglish). Archived from the original on 2019-09-27. Retrieved 2017-07-13.
  5. ^ Deering, S. (Aug 1989). "RFC 1112, Host Extensions for IP Multicasting". The Internet Society (بEnglish). Archived from the original on 2016-03-08. Retrieved 2017-07-13.
  6. ^ Vinton, G. Cerf; Robert, E. Khan (May 1974). "A Protocol for Packet Network Intercommunication". Institute of Electrical and Electronic Engineers (بEnglish). Archived from the original on 2017-10-24. Retrieved 2017-07-14.
  7. ^ Postal, J. (Aug 1980). "RFC 768, User Datagram Protocol". The Internet Society (بEnglish). Archived from the original on 2019-09-17. Retrieved 2017-07-14.
  8. ^ Delgrossi, L.; Berger, L. (Aug 1995). "RFC 1819, Internet Stream Protocol Version 2 (ST2), Protocol Specification - Version ST2+". The Internet Society (بEnglish). Archived from the original on 2019-11-06. Retrieved 2017-07-14.
  9. ^ Onions, J. (Apr 1994). "RFC 1606, A Historical Perspective On The Usage Of IP Version 9". The Internet Society (بEnglish). Archived from the original on 2019-08-11. Retrieved 2017-07-14.
  10. ^ Saltzer، J. H.؛ Reed، D. P.؛ Clark، D. D. (نوفمبر 1984). "End-to-end arguments in system design". ACM Transactions on Computer Systems (TOCS). ACM. ج. 2 ع. 4: 277-288.
  11. ^ 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-11-06. Retrieved 2017-07-14.
  12. ^ Partridge, C.; Kastenholz, F. (Dec 1994). "RFC 1726, Technical Criteria for Choosing, IP The Next Generation (IPng) - Section 6.2". The Internet Society (بEnglish). Archived from the original on 2019-10-31. Retrieved 2017-07-14.
  13. ^ Siuyn, Karanjit (1997). Inside TCP/IP [في عمق حزمة بروتوكولات الإنترنت (TCP/IP)] (بEnglish). New Riders Publishing. ISBN:1-56205-714-6.
  14. ^ Gont, F. (Apr 2011). "Security Assessment of the Internet Protocol version 4, draft-ietf-opsec-ip-security-07". Internet Socity (بEnglish). Archived from the original on 2017-07-10. Retrieved 2017-07-14.

وصلات خارجية