بروتوكول إنترنت
بروتوكول الإنترنت هو بروتوكول الاتصال الأساسي في حزمة بروتوكولات الإنترنت ويُشكّل الأساس الذي تعتمد عليه عمليّة توجيه الرزم (Routing) ضمن الشبكة، ويسمح ذلك بالاتصال بين الشبكات المُختلفة، وهذا هو جوهر شبكة الإنترنت.
يُعرِّف البروتوكول فضاءً من العناوين، يتمّ استعمالُها من قبل الطرفيّات والمُوجّهات، حيث يحتوي كل منها على بطاقة شبكة (Network Interface Card NIC) واحدة على الأقل، تحصل هذه البطاقة على عناوين من فضاء بروتوكول الإنترنت. إنّ عمليّة امتلاك عنوان من فضاء العناوين تُسمّى استضافة العنوان (Hosting)، وتُسمّى بطاقة الشبكة عندها بالمُضيف (Host)، من الشائِع استخدام هذا المُصطلح للإشارة إلى الطرفيّة ككل وليس إلى بطاقة شبكة فقط. يمكن للمُضيف أن يمتلك أكثر من عنوان بروتوكول إنترنت في نفس الوقت، ويُوصف حينها بأنّه مُتعدد الاستضافة (Multi-homed).
يُحدد البروتوكول بنية خاصة للرزم، تتألف من قسمين رئيسيين، هما الترويسة (Header) وقسم المُعطيات (Payload). تكون الترويسة مُقسّمة إلى عدد من الحقول (Field)، وتضمّ المعلومات اللازمة لعمل البروتوكول كرقم الإصدار وعنواني مصدر ووجهة الرزمة بالإضافة لمعلومات أخرى، أما قسم المُعطيات فيضمّ المُعطيات التي يتمّ تغليفها ضمن الرزمة.
تاريخيّاً، كان بروتوكول الإنترنت إحدى الخدمات التي تستخدم قنوات لا تتطلب تهيئة اتصال (Connection-less) المُقدّمة من قبل بروتوكول التحكّم بالنقل (TCP) الذي قام كل من فينت سيرف (Vint Cerf) وبوب خان (Bob Khan) بتطويره في عام 1974. لذلك فإن بروتوكول الإنترنت يعتمد على بروتوكول التحكّم بالنقل (TCP) لضمان وجود اتصال مُسبق بين مختلف الأطراف، ولهذا تُوصف قنوات بروتوكول التحكّم بالنقل (TCP) بأنّها تتطّلب تهيئة اتصال (Connection-oriented) ونتيجة لهذه العلاقة الوظيفية، غالباً ما يُشار إلى نموذج الإنترنت بالشكل (TCP/IP).
إنّ أول إصدار مُستقل من بروتوكول الإنترنت هو الإصدار الرابع، ويُشار له اختصاراً (IPv4)، وهو البروتوكول الأساسي في شبكة الإنترنت، الإصدار اللاحق هو الإصدار السادس، ويُشار له اختصاراً (IPv6).
إنّ بروتوكول الإنترنت مسؤول عن عنونة المُضيفين، ويُؤثّر ذلك بشكلٍ مباشر على عملية توجيه الرزم. تحتوي كل رزمة عنوانين هما عنوان المصدر وعنوان الوجهة. يُعرّف بروتوكول الإنترنت بنية الرزمة ونظاماً خاصاً للعنونة يُمكّنه من تمييز المُضيفين بشكلٍ فريد.
تتألف كُل رزمة من قسمين: الترويسة وحمل، تحتوي ترويسة بروتوكول الانترنت على عنوان مصدر الرزمة وعنوان وجهتها بالإضافة لمعلومات أخرى تخصّ عمل البروتوكول، أما حمل فهو المُعطيات التي تنقلها الرزمة. تسمى عملية إضافة الترويسات إلى الحمل بعملية تغليفها.
يستلزم عمل بروتوكول الإنترنت وجود آليّة لتوزيع العناوين على منافذ المُضيفين. إنّ فضاءالعناوين مُقسّم إلى مجموعة من الشبكات القياسيّة التي يُمكن تقسيم كلٍ منها حسب الحاجة إلى شبكات فرعيّة أصغر، وقد تمّ تصميمُه بطريقةٍ هرميّة تتيح استخدام البادئات (Prefix) للإشارة إلى أكثر من شبكة في نفس الوقت، ولذلك أهميّة خاصّة في عملية التوجيه.
تقوم الطرفيّات والمُوجّهات بإنجاز عملية التوجيه اعتماداً على بنية العناوين السابقة، والتوجيه هو إيجاد المسار الذي يجب أن تسلُكه الرزمة ضمن الشبكة من مصدرها إلى وجهتها، وتستخدِم المُوجّهات بروتكولات خاصة تُسمّى بروتوكولات التوجيه لإيجاد أفضل المسارات المُتاحة.
يمكن اعتماداً على بنية الفضاء السابقة تعريف نوعٍ خاص من التوجيه هو التوجيه المجمُوعاتي (IP Multicating)، وفي هذا النوع تكون الوجهة مجموعة من المُضيفين بدلأً من مُضيفٍ واحد، ولكن ما يُميّز عناصر هذه المجموعة أنّها تستضيف عنواناً مُشتركاً يُسمّى عنوان المجموعة (Multicast address)، وينتج عن عملية البث المجمُوعاتي إرسال الرزمة إلى جميع المُضيفين الذين يمتلكون هذا العنوان.
إنّ الإصدارت المُوجودة حالياً للبروتوكول هي الإصدار الرابع (IPv4) والإصدار السادس (IPv6).
في شهر ماي من العام 1974م، نشر معهد مُهندسي الكهرباء والإلكترونيات (IEEE) ورقةً بحثيّةً بعنوان: " بروتوكول للاتصال ضمن شبكات الرزم" (A protocol for Packet Network Interconnection). قدّم كاتبا البحث، فينت سيرف وبوب خان وصفاً لبروتوكولٍ يعمل بين الشبكات بهدف تشارك الموارد عن طريق تبديل الرزم (Packet Switching) بين عُقد الشبكة، كان برنامج التحكم بالنقل (Transmission Control Program) هو حجر الأساس في هذه العملية. لاحقاً تمّ تقسيم هذا البرنامج إلى وحدات بنيويّة هي بروتوكول التحكّم بالنقل (TCP) وبروتوكول رزم المُستخدم (User Datagram Protocol UDP) في طبقة النقل، وبروتوكول الإنترنت (IP) في طبقة الإنترنت. عُرف هذا النموذج بنموذج الانترنت الخاص بوزارة الدفاع (Department of Defense DoD)، أما اليوم فيُشار إليه بأنّه نموذج الإنترنت (TCP/IP).
إنّ الإصدارات ذوات الأرقام (0) حتى (3)، كانت إصدارات تجريبية استُخدمت العامين (1977) و(1979). فيما يلي وثائق المُلاحظات الخاصة بتجارب الإنترنت (Internet Experimental Note IEN) التي تصفّ إصدارات بروتوكول الإنترنت السابقة للإصدار الرابع (IPv4):
إنّ بروتوكول الإنترنت المُهيّمن على طبقة الإنترنت اليوم هو الإصدار الرابع من بروتوكول الإنترنت (IPv4)، والرقم 4 هو رقم الإصدار الذي يُوجد داخل حقل رقم الإصدار في ترويسة الرزمة في كل رزم الإصدار الرابع من بروتوكول الإنترنت. إنّ الإصدار الرابع من بروتوكول الإنترنت موصُوف بالوثيقة (RFC 791).
طُوّر الإصدار الخامس (IPv5) تحت مُسمى بروتوكول التدفق في شبكة الإنترنت (Internet Streaming Protocol)، ولكنّه لم يتجاوز المرحلة التجريبيّة.
إنّ الإصدار السادس من بروتوكول الإنترنت (IPv6) هو وريث الإصدار الرابع (IPv4). و يختلفان عن بعضهما البعض بشكلٍ أساسي بحجم فضاء العناوين، ففي حين يستخدم الإصدار الرابع عناوين بطول من 32 بت، وهو ما يخلق 4.3 مليار (4.3x10) عنوان متاح في فضاء العناوين، فإنّ الإصدار السادس يستخدم عناوين بطول 128 بِت، ما يسمح بوجود (3.4x10) عنوان متاح في فضاء عناوينه. لكن الانتقال إلى العمل بالإصدار السادس يسير بوتيرة أبطأ من المتوقع.
في 1 أبريل 1994م، نشرت مجموعة مُهندسي الإنترنت (IETF) تقريراً يُفيد بتطوير الإصدار التاسع من بروتكول الإنترنت (IPv9) ولكن الخبر برمّته كان كذبة أبريل.
إنّ بروتوكول الإنترنت مُصمم ليدعم مفهوم العلاقة بين طرفيتين (End-to-End)، وبناءً على ذلك فإنّ بُنية الشبكة تعتبر غير موثُوقة (Unreliable) ويشمل ذلك العُقد وأوساط النقل، كما تُوصف توافُريّة (Availability) العناصر السابقة بأنّها مُتغيّرة (Dynamic). لأغراض تتعلّق بتقليل تعقيد الشبكة، فإنّ البروتوكول لا يدعم أيّ آليّة المُراقبة وتعقّب حالة الشبكة.
نتيجةً للتصميم السابق، فإنّ بروتوكول الإنترنت غير موثُوقٍ، ويقدّم أفضل ما يمكن لتوصيل الرزم (Best-effort delivery)، دون ضمانٍ أكيد لذلك، لذا فهو بروتوكول لا يتّطلب عمله تهيئة الاتّصال (Connection-less Protocol)، ويعني ذلك أنّ وصُول رزم تالفة أو مُكررة أو فقداناً للرزم أو وصُولها بترتيبٍ مُغايرٍ لترتيب إرسالِها (Out-of-order Delivery) هي حالات مُمكنة. تنتج حالة الوصول بترتيبٍ مُغايرٍ لترتيب الإرسال بسبب عدم وجُود آليّة تُمكّن الشبكة من التعرّف على حالة المسار الذي سلكته الرزمة السابقة. ولهذا فقد يتمّ توجيه رزمتين مُتتاليتين أو أكثر بمسارين مُختلفين أو أكثر، ما ينتج عنه وصُولها إلى الهدف بأزمنة تأخير مُختلفة، بسبب اختلاف المسارات وبالتالي فإنّ ترتيب وصول الرزم سيكون مُختلفاً عن ترتيب إرسالها.
يُؤمّن بروتوكول الإنترنت آليّة لضمان خلوّ الترويسة من الأخطاء. يجب على كل عقدة تدعم التوجيه أن تقوم بحساب قيمة حقل التحقق الجمعيّ (Checksum) من أجل كل الرزمة تردُها، ومُطابقته مع القيمة المَوجودة في الرزمة، إذا لم تتطابق القيمتان، فيجب أن يتمّ التخلص من الرزمة. على الرغم من أنّ بروتوكول رسائل التحكّم في شبكة الانترنت (ICMP) يدعم إخطار المصدر بحصول هذا النوع من الأخطاء، فإنّ ذلك ليس لزاماً على العقدة التي تخلّصت من الرزمة. وعلى العكس من هذا تماماً، فإنّ ترويسة الإصدار السادس (IPv6) لا تحتوي على حقل التحقق الجمعيّ السابق، بهدف رفع أداء الشبكة، وذلك على افتراض أنّ طبقة الربط تُؤمّن آليّة فعّالة لكشف وُجود الأخطاء.
يجب أن تقوم عقد الشبكة بمُعالجة هذه الأخطاء، وفي حزمة بروتوكولات الإنترنت (TCP/IP) فإنّ مُعالجة مشاكل الوثوقيّة هي من وظائف طبقة النقل.
إنّ طبيعة شبكة الإنترنت والتنوع الكبير في مُكوّناتها يعني أنّه لا يوجد ضمانة بأنّ مساراً مُحدداً قد يكون قادراً على نقل المُعطيات أو مُناسِباً لعمليّة النقل، حتّى ولو كان المسار مُتاحاً للاستخدام وموثُوقاً. إنّ حجم النقل الأعظميّ (Maximum Transmission Unit MTU) المُسموح في وسطٍ ما هو أحدُ القيود التقنيّة لعملية النقل عبرَ هذا الوسط، ولا يُمكن أن يتمّ نقل رزم ذاتُ حجمٍ أكبر من حجم النقل الأعظميّ (MTU) للوسط، ويجب على التطبيقات التي تستخدم هذا الوسط مُراعاة هذا القيد.
في الإصدار الرابع من بروتوكول الإنترنت (IPv4)، يدعم البروتوكول ميّزة التقطيع (Fragmentation)، وفيها يتمّ تقطيع رزم التي يتجاوز حجمُها حجم النقل الأعظميّ (MTU) للطبقة الشبكة إلى رزمتين أو أكثر، تُسمى القِطع (Fragments)، جميعها بحجم أقل من الحد الأعظميّ المسمُوح، ويُؤمّن بروتوكول الإنترنت آليّة لإعادة تجميع (Reassembly) القطع وترتيبها في الوجهة، خاصةً أنّ وصُولها بالترتيب الصحيح غيرُ مضمُونٍ.
أمّا في الإصدار السادس من بروتوكول الإنترنت (IPv6)، فجرى تطوير آليّات أخرى تسمح باكتشاف حجم النقل الأعظميّ (MTU) قبل بدء الإرسال، وبالتالي يتمّ تجنّب تجاوزه عند تغليف الرزم.
في المراحل التصميميّة لشبكة الأربانت (APRANET) وعند بناء الشكل البدائيّ لشبكة الإنترنت، لم يتمّ أخذ المنظور الأمني ولا الاستخدام العام أو الدوليّ للشبكة بالحسبان. نتيجة لذلك، فإنّ العديد من بروتوكولات الإنترنت تضمّنت ثغرات تمّ اكتشافُها بعد تعرّض الشبكة لهجمات أو بعد تقييم أمنيّ لاحق. في عام 2011 م، تمّ نُشر تقريرٍ أمنيّ شامل تضمّن تقييماً أمنيّاً واقتراحاتٍ للتخفيف من أثر الثغرات الموجُودة.