حزمة بروتوكولات الإنترنت

حزمة بروتوكولات الإنترنت (بالإنجليزية: Internet Protocol Suite)
أو نموذج الإنترنت (بالإنجليزية: TCP/IP Model)، أو نموذج وزارة الدفاع (بالإنجليزية: Department of Defense DoD Model) هو نموذج مُجرّد يربط عمل مجموعة من بروتوكولات الاتصالات المُستعملة في شبكة الإنترنت وفي شبكات حواسِب أُخرى. يُعرَف هذا النموذج باسم نموذج الإنترنت، ويُشار إليّه اختصاراً بالرمز (TCP/IP)، الذي يجّمع بروتوكول الإنترنت (IP)وبروتوكول التحكّم بالنقل (TCP)
لأنّهما أول بروتوكولين أُضيفا للحزمة. ويُدعى النموذج في بعض الأحيان باسم نموذج وزارة الدفاع، لأنّ تمويل المشروع جاء عن طريق وكالة مشاريع البُحوث المتطوّرة الدفاعيّة (DARPA)، وهي إحدى وكالات وزارة الدفاع في الولايات المتحدة الأميركيّة.
بهدف نقل البيانات، تُؤمّن حزمة بروتوكولات الإنترنت اتصالاً بين طرفيّتين، وتحدد كيف يتمّ تغليف وعنونة ونقل وتوجيه واستقبال البيانات. يجري تنظيم الوظائف في أربع مستويات يُسمّى كل منها طبقة (Layer)، ويتمّ تجميع البروتوكولات في هذه الطبقات بحسب الوظيفة.
إنّ الطبقات من الأدنى إلى الأعلى هي: طبقة الربط، وتتضمّن طرق الاتصال لنقل المُعطيات ضمن مجال بثٍّ عامٍ واحد، وطبقة الإنترنت، وتربط بين  مجالات البثّ العام المُختلفة، وتشمل القضايا المُتعلّقة بالتوجيه، وطبقة النقل وتعالِج الوظائِف المُرتبطة بقنوات الاتصال بين المُضيفين (Host-to-Host)، وطبقة التطبيق والتي تهتمُ بالعلاقة بين العمليات (Process-to-Process) بهدف نقل المُعطيات بين تطبيقات الطرفيّتين.
إنّ مجموعة مُهندسي الإنترنت  هي الجهة المُخوّلة بإصدار وحفظ وثائِق المعايير الخاصة ببروتوكولات الحزمة، أو التعليق عليها بهدف شرح وتوضيح آليّات عملِها. تمّ تطوير حزمة بروتوكولات الإنترنت قبل تطوير  نموذج الاتصال المعياريّ (OSI)
وهي أكثرُ بساطةً مِنه.

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

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

الأبحاث الأولى

جاء تطوير حزمة بروتوكولات الإنترنت كنتيجة للأبحاث والدراسات التي أجرتها وكالة مشاريع البُحوث المتطوّرة الدفاعيّة (DARPA) في نهاية الستينيّات،

فبعد إطلاق  شبكة الأربانت الرائدة في عام 1969م، بدأت الوكالة في العمل على عددٍ من تقنيّات نقل البيانات. في عام 1972م، انضمّ بوب خان إلى مكتب تقتيّات مُعالجة المعلومات (IPTO)، حيث عمل على في شبكات نقل الرزم باستعمال الأقمار الصناعيّة، وباستعمال محطات الراديو الأرضيّة، وأدرك حينها الحاجة لشبكات مُعطيات عالميّة. في ربيع العام 1973م، انضمّ فينت سيرف، مُطوّر برنامج التحكّم بشبكة الأربانت (NCP)، إلى خان وابتدآ العمل على تطوير نموذج لبنيّة شبكات الاتصال وذلك بهدف تصميم الجيل التالي من بروتوكولات شبكة الأربانت.
مع حلول صيف العام 1973م، كان خان وسيرف قد نجحا في إعادة صياغة الشكل العام للنموذج، وبدلاً من أن تكون الوثوقيّة هي مسؤوليّة الشبكة، كما هو الحال في الأربانت، فقد تمّ تفويض المُضيفين بذلك، نتج عن ذلك تطّوير بروتوكول جديد هو بروتوكول التحكّم بالنقل (TCP)، ونشر الاثنان ورقة بحثيّة
بذلك  في العام 1974م.
في البداية، كان بروتوكول التحكّم بالنقل مسؤولاً عن نقل الرزم  وعن التوجيه. ولكن مع التطوير الحاصل، استحسن بعض الباحثين تنظيم البروتوكولات عن طرق فصلها بحسب وظائفها وتجميعها في مجموعة من المستويات أو الطبقات، من دُعاة هذه الفكرة جوناثان بوستل من معهد تقانة المعلومات في جامعة كاليفورنيا الجنوبيّة، الذي عمل كمُحرر لوثائق طلبات التعليق (RFC)، بوستل علّق على الموضوع: " إنّنا نقوم بإفشال تصميم شبكة الإنترنت من خلال إنتهاك مبدأ الطبقات ".

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

مثل شبكة الرزم الراديويّةّ (Packet Radio Network PRnet)

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

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

تطوير المُحددات

في الفترة المُمتدّة بين عامي 1973 و1974م، طوّر سيرف مع مجموعة بحث في معهد ستانفورد للأبحاث (SRI) التفاصيلَ المُتعلّقة بهذه الفكرة، وكانت النتيجة هي أول مُحددات خاصّة ببروتوكول التحكّم بالنقل (TCP).
تأثّر هذا العمل بشكلٍ ملحوظ بالأعمال السابقة التي أنجزت في زيروكس بارك والتي نتج عنها تطوير حزمة بروتوكولات بارك العامة ( PARC Universal Packet Protocol Suite).
بعد ذلك، تعاقدت وكالة مشاريع البُحوث المتطوّرة الدفاعيّة (DARPA) مع شركة بي بي إن للتكنولوجيا (BBN Technologies) وجامعة ستانفورد  و كلّية لندن الجامعيّة (UCL) بهدف تطوير إصدارات تشغيليّة على مِنصّات مُختلفة، وكانت النتيجة هي تطوير أربعة إصدارات مُتتاليّة من بروتوكول الإنترنت
(IP) وبروتوكول التحكّم بالنقل وصُولاً إلى الإصدار الرابع لكلٍ منهُماالذي ما يزال مُستخدماً حتى اليوم.
في عام 1975م، تمّ إجراء تجربة لإقامة اتصال بين شبكتين في جامعة ستانفورد  وكلّية لندن الجامعيّة باعتماد حزمة بروتوكولات الإنترنت. وفي نوفمبر عام 1977م، تمّ توصيل شبكات ثلاث مواقع في الولايات المتحدة الأميركيّة والمملكة المُتحدة والنرويج باعتماد حزمة بروتوكولات الإنترنت. جرى أيضاً تطوير عدّة نماذج من حزمة بروتوكولات الإنترنت في العديد من المراكز البحثيّة في الفترة المُمتدّة بين عامي 1978 و1983م. تمّ الانتقال من استعمال شبكة الأربانت إلى حزمة بروتوكولات الإنترنت رسمياً في 1 يناير 1983 حيث تمّ تفعيل هذه البروتوكولات بشكلٍ دائم.

اعتماد النموذج

في مارس عام 1982م أعلنت وزارة الدفاع الأميركية اعتماد حزمة بروتوكولات الإنترنت كمعيار في كل شبكات الحواسب العسكريّة.

في عام 1985م، أقام مجلس الإنترنت الاستشاري (Internet Advisory Board) (الذي سُمي لاحقاً مجلس هندسة الإنترنت (Internet Architecture Board IAB)) ورشة عملٍ لمدّة ثلاثة أيّامٍ حوّل حزمة بروتوكولات الإنترنت (TCP/IP) لمُصنّعي الحواسيب، حضرها مُمثلون عن 250  مُصنّع، تمّ فيها تسويق الحزمة للاستخدام التجاري.
في عام 1985، عُقد أوّل مؤتمر حول التشغيل المُشترك للشبكات من خلال اعتماد أوسع لحزمة بروتوكولات الإنترنت. تمّ تمويل المؤتمر من قبل دان لينش (Dan Lynch)، وهو أحد أوائل الناشطين في شبكة الإنترنت، وشهد المُؤتمر مشاركة واسعة من شركات عملاقة مثل أي بي أم (IBM) وديجيتال إكوبمينت (DEC) وهو يُعقد سنوياً بانتظام منذ ذلك الوقت.
كانت أي بي أم وديجيتال إكوبمينت وإيه تي أند تي هي الشركات الأولى التي اعتمدت حزمة بروتوكولات الإنترنت. على الرغم من امتلاك كلٍ منها لحزمة بروتوكولات مُنافِسة خاصّةٍ بها. في أي بي أم، ومُنذ العام 1984م، تمّ البدء بالتطوير اعتماداً على حزمة بروتوكولات الإنترنت.لاحقاً بدأت شركات أصغر تُقدّم إضافة توسيعيّة لدعم حزمة البروتوكولات لنظام التشغيل دوس (DOS) وأنظمة مايكروسوفت ويندوز مثل شركة أف تي بي للبرمجيّات (FTP Software) ومجموعة ولونغونغ (The Wollongong Group). أمّا أوّل إضافة توسيعيّة لدعم حزمة بروتوكولات الإنترنت لنظام تشغيل أي بي أم المُسمّى (VM/CMS) فقد جاءت من جامعة ويسكونسن.
بعض الإضافات التوسيعيّة تمّت كتابتها من قبل بعض المُبرمجين بدون أيّ مساعدة، مثلاً، قام جاي إلنسكي (Jay Elinsky) وأوليغ فيشنيبولسكي (Oleg Vishnepolsky) من فريق الأبحاث في أي بي أم بكتابة الإضافة التوسيعيّة لدعم حزمة بروتوكولات الإنترنت لنظامي تشغيل (VM/CMS) و(OS/2).
في يونيو 1989م، حصلت عملية انتشار حزمة بروتوكولات الإنترنت على دفعةٍ جديدةٍ، فقد وافقت شركة إيه تي أند تي (AT&T) على وضع  شيفرة مصدريّة لحزمة البروتوكولات طُوّرت لأجل أنظمة يونكس (UNIX) تحت ترخيصٍ مفتوح المصدر. وقد قام عدد من المُصنّعين، من ضمنهم أي بي أم بتضمين هذه الشيفرة في الإضافات التوسيعيّة الخاصّة بهم. قامت العديد من الشركات ببيع الإضافات التوسيعيّة لدعم حزمة بروتوكولات الإنترنت  في أنظمة ويندوز حتى قيام مايكروسوفت بإصدار ويندوز 95 الذي تضمّن دعماً أساسيّاً لحزمة بروتوكولات الإنترنت. على الرغم من أنّ هذه الخطوة جاءت مُتأخّرة قيّاساً بتطوّر شبكة الإنترنت، ولكنّها كانت بمثابة الإعلان عن السيطرة المُطلقة لحزمة بروتوكولات الإنترنت في مقابل تراجُع النماذج الأُخرى وأهمّها: نموذج بُنية شبكة النظم (Systems Network Architecture SNA) الخاصّ بشركة أي بي أم وحزمة بروتوكولات ديسي نت (DECnet) الخاصّة بشركة ديجيتال إكوبمينت ونموذج الاتصال المعياريّ (OSI).

المبادئ البنيويّة الأساسيّة للنموذج

أكّدت الوثيقة (RFC 1122)  المُعنونّة: " مُتطلبات مُضيفي الإنترنت، طبقات الإتصال " (Requirements for Internet Hosts, Communication Layers) اعتماد كدسة من الطبقات كمبدأ رئيسيّ  في حزمة بروتوكولات الإنترنت (TCP/IP).
تطوّر  مبدأ العلاقة بين طرفيتين مع مُرور الوقت، فقد وَضَع المبدأ الأصليّ كافّة أشكال الذكاء وإدارة الشبكة أو القدرة على اكتشاف حالة الشبكة وحاجتها للصيانة في الطرفيّات، وافترض بأنّ شبكة الإنترنت التي تربط بين هذه الطرفيّات لا تحتفظ بأيّ معلومات عن حالتها ويكون جُلّ عملها مُركّزاً على السُرعة والبساطة. ولكنّ في العالم الواقعيّ هُناك مُتطلبات من جدران الحماية أو خدمات ترجمة عناوين الشبكة (NAT)

أو من غيرها أدّت إلى إحداث تغييرات في هذا المبدأ.
ينصّ مبدأ المتانة (Robustness Principle) أو قانون بُوستال (Postal's Law) على ما يلي: "بشكلٍ عام، يجب على التطبيق أن يكون مُتخفّظاً بسلوكه عند الإرسال، ومُتحرراً بسلوكه عند الاستقبال. ولهذّا، يجب توخّي الحذر عند الإرسال وإرسال رزم مُعدّة بشكلٍ جيّد، ولكنّ يجب قُبُول أيّ رزمة يُمكن فهمُها (مثلاً، حالة وجود أخطاء تقنيّة حيث المعنى لا يزال واضِحاً)". وفي موقعٍ آخر: "قد تحتوي البرمجيّات في بقيّة المُضيفين على أوجه قصور، لذلك ليس من الحكمة استخدام ميّزات البروتوكول القانونيّة الغامضة".  قد صاغ بُوستال هذا المبدأ بشكلٍ مُختصر بالشكل: "كُنّ مُحافظاً فيما تقوم به، ومُتحرراً فيما تقبلُه من الآخرين".

مقارنة بين نموذج الإنترنت (TCP/IP) ونموذج الاتصال المعياريّ (OSI)

إنّ الطبقات الثلاثة العُليّا نموذج الاتصال المعياريّ (OSI)، أي طبقات التطبيق والعرض والجلّسة، غير مُتمايّزة في نموذج الإنترنت  (TCP/IP) الذي يحتوي على طبقة وحيدة فقط فوق طبقة النقل. لا يوجد مُتطلّبات تصميميّة في نموذج الإنترنت تفرض وجود بنية مُتجانسة مُحددة فوق طبقة النقل. بعض التطبيقات التي تعتمد النموذج المعياريّ، مثل تطبيق أكس 400 (X.400)، تقوم بدمج الطبقات الثلاثة السابقة.
يبدو تأثير دمج طبقتي العرض والجلّسة في طبقة واحدة هي التطبيق ذو أثرٍ ضئيل في بروتوكولات مثل بروتوكول نقل النص التشعبي (HTTP) وبروتوكول إرسال البريد البسيط (SMTP)، لكن هذا الأثر يُصبح جليّاً عند استعمال بروتوكولات أخرى مثل بروتوكول الاتصال الآمن (SSH) وبروتوكول بدء الجلسة (SIP).

في نموذج الإنترنت هناك إضافة توسيعيّة لتغطية وظائف طبقة العرض في النموذج المعياريّ، تُسمى هذه الإضافة توسيعيّة بمُلحق البريد الإلكتروني مُتعدد الأغراض (Multipurpose Internet Mail Extensions MIME).
لا تلتزم مجموعة مهندسي شبكة الإنترنت (IETF) بشكلٍ صارم بكدسة مُحددة من الطبقات عند تطوير البروتوكولات، ولذلك فإنّ بعض البروتكولات لا تتوافق من حيث الوظيفة مع طبقة مُعيّنة بحدّ ذاتِها، من الأمثلة على ذلك بعض البروتوكولات التي تسمح بالوصول المُتعدد (Multi-access) مثل الإيثرنت
وهي تملك نظامَ عنونةٍ خاصاً بها، وإذا استُعمِلَ هذا البروتوكول مع بروتوكول الإنترنت (IP)، الذي يملك نظام عنونته الخاص أيضاً، لابدّ من وجود بروتوكولٍ لمُطابقة العناوين بين النظامين، مثل بروتوكول حل العناوين (ARP)،

وهذا البروتكول يجب أن يوجد وظيفيّاً تحت طبقة الإنترنت ولكن فوق طبقة الربط. شملت الإضافة التوسيعيّة للنموذج المعياريّ حالات كهذه ضمن التنظيم الداخلي لطبقة الشبكة (Internal Organization of The Network Layer IONL).

تشمل الوثيقة (RFC 3439) المُعنونّة: "بعض المبادئ التوجيهيّة لبُنيّة وفلسفة شبكة الإنترنت " (Some Internet Architectural Guidelines and Philosophy)

تصنيفاً للحالات التي يكون الاستعمال الصارم لكدسة الطبقات فيها ضارّاً بعملية التطوير.
بشكلٍ مُماثل، فإنّ بروتوكولات مثل بروتوكول رسائل التحكّم في شبكة الإنترنت (ICMP) وبروتوكول إدارة المجموعات في شبكة الإنترنت (IGMP)، تعمل فوق بروتوكول الإنترنت ولكن تحت  طبقة النقل. شملت الإضافة التوسيعيّة للنموذج المعياريّ حالات كهذه ضمن الإطار الإداري لنموذج الاتصال المعياريّ (OSI Reference model Management Framework OSIRM MF)

من خلال إضافة طبقة فرعيّة هي طبقة الإدارة (Management Layer)، بالمُقابل أشارت الوثيقة (RFC 792)، المُعنونّة: "بروتوكول رسائل التحكّم في شبكة الإنترنت" (Internet Control Message Protocol)،  إلى أنّ بروتوكول رسائل التحكّم في شبكة الإنترنت (ICMP) هو جزء مُدمج من بروتوكول الإنترنت.
في نموذج الإنترنت، لا يوجد إجماع حول ما الذي يقابل الطبقة الفيزيائيّة الموجودة في نموذج الاتصال المعياريّ، والآراء تنقسم بين فريقين أحدهُما يقول أنّ نموذج الإنترنت لا يغطّي هذه القضايّا، والآخر يفترض وجود طبقة أخرى تحت طبقة الربط هي طبقةُ العتاد (Hardware Layer) أو طبقة النفاذ إلى الشبكة (Network Access Layer) وقد اعتُمد هذا النموذج المُكوّن من خمس طبقات من قبل مُنظّماتٍ بارزةٍ مثل معهد مُهندسي الكهرباء والإلكترونيات (IEEE) والاتحاد الدُوليّ للاتصالات (ITU).
تدعم بروتوكولات نموذج الإنترنت مفهوم التغليف المُتكرر (Recursive Encapsulation)،
وأوضح الأمثلة على ذلك هو  بروتوكول التوجيه والتغليف العام (GRE).

الاستعمالات التطبيقيّة

لا تفرض حزمة بروتوكولات الإنترنت (TCP/IP) أيّ متطلّبات خاصّة للعتاد أو أيّ متطلّبات برمجية من أجل استعمالها، فقط يجب أن يمتلك العتاد و البرمجيّات قدرة على تبادل المُعطيات عبر الشبكة، ونتيجةً لذلك، فإنّ هذه الحزمة مدعومة بشكلٍ أساسيّ في جميع المنصّات اليوم. إنّ استعمال الحزمة بالحدّ الأدنى يتطلب استخدام البروتوكولات التالية: بروتوكول الإنترنت (IP) وبروتوكول حل العناوين (ARP) وبروتوكول رسائل التحكم في شبكة الإنترنت (ICMP) وبروتوكول التحكّم بالنقل (TCP) وبروتوكول رزم المُستخدم (UDP) وبروتوكول إدارة المجموعات في شبكة الإنترنت (IGMP).
إنّ استعمال الإصدار السادس من بروتوكول الإنترنت (IPv6) يتطلّب إصداراً خاصّةً من بروتوكول رسائل التحكّم، هو الإصدار السادس (ICMPv6)،
 وغالباً ما يكون هذا الاستعمال مُرفقاً بحزمة بروتوكول الإنترنت الأمنيّة (IPSec).
بشكلٍ عام، يهتمّ مُبرمجو التطبيقات بطبقتي التطبيق والنقل، أمّا الخدمات التي تقدمُّها الطبقات الدُنيّا فهي مدعُومة بشكل افتراضيّ من نظام التشغيل. يُمكن للمبرمجين استعمال حزمة بروتوكولات الإنترنت إمّا عن طريق المقابِس أو عن طريق واجهة برمجة التطبيقات (API). هناك تطبيقاتٌ خاصةٌ للنموذج مثل نموذج الإنترنت البسيط (Lightweight TCP/IP)، وهو كدسة بروتوكولات بشيفرة مصدريّة مفتُوحة مخصصة للأنظمة المُدمجة.
تُعالج البرامج الثابتة في المُتحكّمات الصغريّة في بطاقة الشبكة (NIC) القضايا المُتعلّقة بوسط النقل، وهي بحاجة للبرامج التعريفيّة في نظام التشغيل لتنجح في ذلك. في المستوى التاليّ تسيطر العناصر الإلكترونيّة، وهي غير قابلة للبرمجة، وغالباً ما تُستخدم دارات مُتكاملة مُحددة التطبيقات (Application-Specific integrated circuit ASIC) لهذا الغرض.