تغليف مُعطيات بحسب نموذج الإنترنت (TCP/IP). أحجام المُعطيات والترويسات غير مُتناسبة.
التغليف (بالإنجليزية: Encapsulation) هو طريقة لعمل بروتوكولات الاتصالات مع بعضها البعض لإعداد المُعطيات التي يُراد نقلُها عبر الشبكة. تُقسّم نماذج الشبكة عملية إعداد المُعطيات وظيفيّاً إلى عدد من المراحل أو الطبقات، ويتمّ تصنيف بروتوكولات الشبكة بحسب وظيفتها لتتوضع في طبقة معيّنة من النموذج. يُحدد التغليف الطريقة والترتيب الذي تقوم فيه البروتوكولات بإضافة ترويساتها إلى المُعطيات بدءأ من التطبيق الذي يُولّدها وصُولاً إلى وسط النقل في الشبكة.
إنّ عملية التغليف مُعتَمَدة على نطاقٍ واسعٍ في نماذج الشبكات، ويشمل ذلك نموذج الإنترنت (TCP/IP) ونموذج الاتصال المعياري (OSI).
آليّة العمل
التغليف هو مفهوم تجريديّ ، يبين آليّة عمل البروتوكولات مع بعضها البعض ضمن إطارٍعامّ هو نموذج الشبكة. حيث يُضاف للمُعطيات ترويسة خاصّة في كل طبقة من طبقات النموذج، فينتج ما يُسمى بوحدات مُعطيات البروتوكول (PDU)، وهي عبارة عن المُعطيات الموجُودة في طبقةٍ ما والترويسة المُضافة في الطبقة، بالإضافة للمُلحق إنّ وُجِد. عند تغليف المُعطيات تقوم كل طبقة بتمرير وحدة مُعطيات البروتوكول (PDU) إلى الطبقة التاليّة في النموذج. إن ّ لكلّ بروتوكول بُنّية خاصّة لترويسته حيث يستخدمها لحمل عدد من البايتات التي تُمثّل مُعطيات تحكّم خاصة بوظائفه وآليّات عمله.
تفترض عملية التغليف وجود طرفين يعملان وفق نفس النموذج، ويُشغّلان نفس البروتوكولات، هما مُرسل المُعطيات ومُستقبلها، ويُمكن أن يقوم طرفٌ واحدٌ بلعب دور المُرسل والمُستقبل في نفس الوقت. تبدأ العمليّة من أعلى طبقة في النموذج، وهي الطبقة التي تكون على صلّةٍ مُباشرةٍ مع التطبيقات التي تُولّد المُعطيات المُراد إرسالُها عبر الشبكة، يُضيف البروتوكول العامل على هذه الطبقة أوّل ترويسة للمُعطيات ويُنشئ أول وحدة مُعطيات بروتوكول (PDU)، ثمّ يتمّ تمرير هذه الوحدة إلى الطبقة التاليّة، حيث يعمل أحد البروتوكولات والذي يقوم بإضافة ترويسته ويُنشئ بذلك وحدة مُعطيات البروتوكول الخاصّة بالطبقة، ثم يتمّ تمرير هذه الوحدة إلى الطبقة التاليّة وهكذا وصولاً إلى الطبقة الأخيرة في النموذج، وهي الطبقة التي تربط النموذج مع وسط النقل.
يقوم الطرف المُرسل بتغليف المُعطيات بدءاً من أعلى طبقة في النموذج ثمّ نُزُولاً، أمّا في المُستقبل فتحصل عملية فكّ التغليف (Deecapsulation)، بشكلٍ مُعاكسٍ بدءاً من أدنى طبقة فيه، وهي الطبقة التي تستقبل المُعطيات صعوداً إلى أعلى طبقةٍ والتي تكون على اتصالٍ مُباشرٍ مع التطبيق، حيث يقوم البروتوكول العامل على كل طبقة في الطرف المُستقبل بإزالة الترويسة التي أضافها نفس البروتوكول في طرف الإرسال. ولهذا فإنّ العمل وفق نفس النموذج ودعم نفس البروتوكولات هو شرطٌ أساسيٌ لنجاح عمليتي التغليف وفكّ التغليف.
يقوم كل طرف بعمليتي التغليف وفكّ التغليف طالما أنه قادر على تبادل المُعطيات، ويمكن أن تحصل عمليّة تغليف مُعطيات تطبيقٍ ما ثُمّ فكّ تغليفها ضمن نفس الطرف، دون أن يتمّ إرسالُها عبر الشبكة، وفي هذه الحالة يكون التطبيق العامل في ذلك الطرف هو المُرسل والمُستقبل في نفس الوقت، حيث يتمّ إرسال المُعطيات بحسب نموذج الشبكة، ليجري تغليفُها أصُولاً، وفي الطبقة الأخيرة من النموذج يتمّ مُعاملتُها مُعاملةَ المُعطيات الواردة، حيث تعاود الصعود مُجدداً نحو أعلى طبقة حيّثُ يجري فكّ تغليفِها بالتدريج بدون أن تغادر الطرف الذي تمّ توليدها فيه باتجاه الشبكة، ولهذا أهميّة خاصّة في عملية تطوير البرمجيّات.
تدفّق المُعطيات بين طرفيتين عبر شبكة متباعدة بحسب نموذج الإنترنت (TCP/IP)، تضمّ الشبكة مُوجّهين، وتحصل عملية فك التغليف الرزمة وثم تغليفها مجدداً لإنتاج الإطار في كل مُوجّه على المسار.
قد تضيف الطبقة مُلحقاً (Trailer) للمُعطيات بالإضافة للترويسة، ومن الطبقات التي تُضيف مُلحقاً كهذا طبقة الربطفي نموذج الإنترنت (TCP/IP)، وطبقة ربط المُعطيات في نموذج الاتصال المعياري (OSI)، ويُستخدَم الملحق من أجل كشف الأخطاء الحاصلة عند النقل، وذلك باعتماد خوارزميّات خاصّة مثل خوارزميّة اختبار الفائض الدوريّ (CRC) أو خوارزميّة اختبار متتالية الإطار (FCS).
إنّ عمليّتي التغليف وفكّ التغليف هي نتيجةُ العمل المُشترك بين طبقات النموذج مع بعضها البعض، تُوصف علاقة الطبقات التي تُمرر وحدة مُعطيات البروتوكول (PDU) بشكلٍ مُباشر فيما بينها ضمن نفس الطرف بأنّها علاقة بين الطبقات المُتجاورة (Adjacent-Layer interconnection)، أمّا العلاقة التي تربط بين الطبقة التي تضيف وحدة مُعطيات بروتوكول (PDU) ما في الطرف المُرسل، والطبقة التي تتخلّص من نفس الوحدة في الطرف المُستقبل فتُوصف بأنّها على علاقة بين طبقتين مُتماثلتين (Same-Layer interconnection).
تقوم المُوجّهات أثناء توّجيه المُعطيات من شبكة إلى أُخرى بفكّ تغليف الإطار (Frame) واستخراج الرزمة، حيث يتمّ تعديل بعض الحقول فيها لأغراض تتعلق بالتوّجيه ، ثم يُعاد تغليف الرزمة ضمن إطارٍ جديدٍ مناسبٍ للمعيار الفيزيائيّ للشبكة التي سيتمّ توجيه الرزمة إليّها،وهكذا تنتقل الرزمة من شبكةٍ إلى أخرى حيّث تُعاد عمليتي التغليف وفكّ التغليف في كل مُوجّه على طول المسار. لا تقوم المُبدّلات بعملية التغليف أو فكّ التغليف، وتكتفي بتبديل الأطر بين منافذها.
في حالات خاصة، تبدأ عملية التغليف في طبقة مُغايّرة لأعلى طبقة في الكدسة، وتستمر نُزولاً في طبقات النموذج. من الأمّثلة على ذلك تغليف رسائل بروتوكول رسائل التحكّم في شبكة الإنترنت (ICMP) بحسب نموذج الإنترنت (TCP/IP)، حيث تبدأ العملية في طبقة الإنترنت، عندما يُولّد البروتوكول إحدى رسائله، ثمّ يقوم بروتوكول الإنترنت (IP) بتغليف الرسالة وتوليد رزمة المُعطيات، ثمّ يجري تمرير الرزمة إلى الطبقة التاليّة لتستمر عملية التغليف بعدها بشكل اعتيادي.
إنّ التغليف المُتكرر (Recursive Encapsulation) هو شكلٌ خاصٌّ من أشكال التغليف، وفيه تتمّ عملية إعادة تغليف وحدة مُعطيات بروتوكول (PDU) في طبقةٍ ما مُجدداً من البداية، حيّث تُعامل وكأنّها مُعطيات في طبقة التطبيق، ولهذا النوع من التغليف استخداماتٌ خاصّةً في البروتوكولات النفقيّة.
أمثلة
فيما سيأتي، مثالين تطبيقيين لكيفيّة إنجاز عملية التغليف، في المثال الأول يتمّ استعمال نموذج الإنترنت (TCP/IP)، أمّا في المثال الثاني فإن النموذج المُستعمل هو نموذج الاتصال المعياريّ (OSI).
إطار المُعطيات بعد إنجاز عملية التغليف بحسب نموذج الإنترنت (TCP/IP).
مقالة مفصلة: حزمة بروتوكولات الإنترنت
يتكون نموذج الإنترنت (TCP/IP) من كدّسة من الطبقات عددُها أربعة، تهتمّ الطبقة العُليّا، وهي طبقة التطبيق، بكيفيّة التعامل مع المُعطيات التي تولدّها التطبيقات، أمّا طبقة الجلسة، فتكون مُسؤوليّتها الأساسيّة هي تهيئة قنوات الاتصال وتصنيف خدمات الشبكة . تُؤمّن طبقة الإنترنت آليّاتٍ لعنونةٍ عامّةٍ للمُضيفين ولتوجيه الرزم، وأخيراً طبقة الربط، التي تُشكّل واجهة النموذج مع الشبكة المحليّة (LAN).
في هذا المثال، هناك طرفان يعملان وفق نموذج طلب الخدمة (Client/Server Model)، الأول هو العميل الذي يطلب الخدمة، والثاني هو المُخدّم الذي يُقدمها، والخدمة هي تصفّح الويب. يحتوي الطرف الأول على تطبيق هو متصفّح ويب، يُولّد مُعطيّات يجب إرسالُها عبر الشبكة إلى المُخدّم، وتعمل البروتوكولات المعنيّة بالشكل التالي:
يبدأ التغليف في طبقة التطبيق، حيث يستقبل بروتوكول نقل النص التشعبي (HTTP) المُعطيات من التطبيق ويضيف الترويسة الخاصّة به، والتي تتضمن معلومات تتعلّق بشكل مباشر بعملية التصفّح والتطبيق الذي ولّد المُعطيات، ثم تُمرر الترويسة والمُعطيات إلى طبقة النقل.في طبقة النقل، ينشط بروتوكول التحكّم بالنقل (TCP)، الذي يكون قد أسس وبشكل مُسبق قناةً للاتصال مع الجهة البعيدة، يتعامل البروتوكول مع ما ورد من طبقة التطبيق على أنّه مُعطيات فقط، أيّ أنّه لا يُميّز وجود ترويسة طبقة التطبيق، ويقوم بإضافة ترويسته، التي تتضمّن مُعلوماتٍ عن قناة الاتصال وأرقام المنافذ، وفي هذه الحالة سيكون رقم منفذ الوجهة هو (80)، وهو الرقم المُميّز الخاص بخدمة تصفح الويب، بالإضافة لمعلوماتٍ تخصّ وظائف البروتوكول الأُخرى. ثُمّ يتمّ تمرير وحدة مُعطيات البروتوكول (PDU)، والذي يُسمى قطعة المُعطيات، إلى طبقة الإنترنت.تتعامل طبقة الإنترنت مع ما وردها على أنّه مُعطيات، ثمّ يتمّ إضافة الترويسة الخاصّة بالبروتوكول العامل على هذه الطبقة، وغالباً ما يكون الإصدار الرابع من بروتكول الانترنت (IPv4) أو السادس (IPv6). وتتضمّن الترويسة معلومات خاصّة بالعنونة ووظائف البروتوكول الأخرى، ثمّ يجري تمرير وحدة معطيات البروتوكول (PDU) إلى طبقة الربط.تضيف طبقة الربط ترويسة ومُلحقاً، تتضمّن الترويسة معلومات تتعلّق ببروتوكول الطبقة، الذي قد يكون الإيثرنت (Ethernet)، أو أيّ ببروتوكول آخر يعمل في هذه الطبقة، أمّا اللاحقة فتُخصص لآليّات التحقق من وجود الأخطاء التي تتعلّق بالنقل، وكما في الطبقات السابقة، تعامل بروتوكولات طبقة الربط ما وردها على أنه مُعطيات وتُضيف إليها الترويسة والمُلحق. وبعد هذه المرحلة تتشكل بنية مُعطيات خاصّة تسمى الإطار ، وهي تضمّ المُعطيات والترويسات المُضافة خلال عملية التغليف وهو الشكل النهائي الذي سيُرسل عبر الشبكة.
في الطرف المُستقبل، تحصل عملية فكّ التغليف بشكلٍ مُعاكسٍ لعمليّة التغليف، حيث تُعاد الخُطوات السابقة بدءاً من الطبقة الرابعة ثُمّ الثالثة وهكذا، ولكنّ يتمّ إزالة الترويسة المُرتبطة بالطبقة، بالإضافة للمُلحق في طبقة الربط، ثمّ يُمرر الناتج صُعوداً نحو الأعلى.
ا
عملية التغليف وفك التعليف في نموذج الاتصال المعياريّ (OSI).
مقالة مفصلة: نموذج اتصل معياري
تتألّف كدسةُ الطبقات في نموذج الاتصال المعياريّ (OSI) من سبع طبقاتٍ مُرقّمة الأدنى إلى الأعلى، وهي بالترتيب: الطبقة الفيزيائيّة وطبقة طبقة ربط المُعطيات وطبقة الشبكة وطبقة النقل وطبقة الجلس وطبقة العرض وطبقة التطبيق، تكون طبقة التطبيق على اتصال مُباشر مع التطبيقات أمّا الطبقة الفيزيائيّة فتكون على اتصال مباشر مع الوسط الناقل في الشبكة.
في هذا المثال، يُفترض وجود طرفين يتبادلان المُعطيات بشكل مباشر وفق نموذج الاتصال المعياريّ (OSI)، لن يتمّ تحديد بروتوكولات بعينِها، للإبقاء على المثال عامّاً. تحصل عملية التعليف كما يلي:
يقوم أحد التطبيقات بتوليد المُعطيات التي يجب إرسالُها عبر الشبكة في الطرف الأول، في طبقة التطبيق يقوم أحد البروتوكولات بإضافة ترويسته وتشكيل وحدة مُعطيات البروتوكول الخاصة بالطبقة السابعة (L7PDU). تُمرر هذه الوحدة إلى طبقة العرض.بشكلٍ نظريّ، يجب أن يُضيف أحد البروتوكولات ترويسة في كل من طبقتي العرض والجلسة على الترتيب، ثمّ يتمّ تمرير وحدة مُعطيات البروتكول في الطبقة الخامسة (L5PDU) إلى طبقة النقل، ولكن هذه ليست الحالة المُتبعة دوماً، وقد يتمّ إهمال عملية التغليف في هاتين الطبقتين لعدم وجود بروتوكول عامل فيهما.في طبقة النقل، يُضيف أحد البروتوكولات ترويسته فتنتج وحدة مُعطيات البروتوكول (PDU) الخاصّة بالطبقة، والتي قد تُسمّى قطعة مُعطيات (Segment) إذا كان البروتوكول المُستخدم هو بروتوكول التحكّم بالنقل (TCP) أو حزمة مُعطيات (Datagram) إذا كان البروتوكول المُستخدم هو بروتوكول حزم المُستخدم (UDP)، في نهاية المطاف يتمّ إنتاج وحدة مُعطيات بروتوكول خاصة بالطبقة الرابعة (L4PDU) وتُمَرر هذه الوحدة إلى طبقة الشبكة.تستقبل طبقة الشبكة وحدة المُعطيات القادمة من الطبقة الرابعة، ويُضيف البروتوكول العامل على هذه الطبقة ترويسته، فتنتج وحدة مُعطيات بروتوكول الطبقة الثالثة (L3PDU)، والتي تُسمىّ رزمة المُعطيات (Packet)، تُمرر الرزمة إلى طبقة ربط المُعطيات .في الغالب الأعمّ، تحتوي طبقة ربط المُعطيات على بروتكول يُضيف ترويسة ومُلحقاً للرزمة، وينتج بذلك إطار المُعطيات، وهو وحدة مُعطيات البروتوكول الخاصّة بالطبقة الثانية، أهم البروتوكولات العاملة على هذه الطبقة هي بروتوكول الإيثرنت وبروتوكول التحكّم عاليّ المُستوى في ارتباط البيانات (HDLC)، يُمرر الإطار إلى الطبقة الفيزيائيّة.لا تُضيف الطبقة الفيزيائيّة أي ترويسة أو مُلحقاً للإطار، لكنّها تحوّل الإطار إلى شكلٍ ماديّ في وسط النقل، هذا الشكل هو البت، وهو وحدة مُعطيات البروتوكول في الطبقة الأولى (L1PDU)، ويختلف الشكل الماديّ للبت باختلاف وسط النقل، فقد يكون إشارة كهربائيّة، إذا كانت الشبكة تتكون من أسلاك معدنيّة ، أو إشارة ضوئيّة إذا كان وسط النقل أليافاً بصريّة أو أمواج كهرمغاطيسية إذا كانت الشبكة لاسلكيّة.
في طرف الإستقبال تحصل عملية فكّ التغليف بشكلٍ مُعاكس لعمليّة التغليف، حيّث تبدأ من الطبقة الفيزيائيّة التي تكون على اتصالٍ مُباشر مع وسط النقل وتنتهي بطبقة التطبيق حيث التطبيق الذي يستقبل المُعطيات، وفي كل طبقة يتم إزالة الترويسة، والمُلحق في حال وجوده، اللذان تمّ إضافتهما في نفس الطبقة في طرف الإرسال، ثُمّ تمرير الناتج إلى الطبقة الأعلى.
مثال عن التغليف في نموذج الاتصال المعياريّ (OSI)
عملية التغليف وفك التعليف في نموذج الاتصال المعياريّ (OSI).
مقالة مفصلة: نموذج اتصال معياري
تتألّف كدسةُ الطبقات في نموذج الاتصال المعياريّ (OSI) من سبع طبقاتٍ مُرقّمة الأدنى إلى الأعلى، وهي بالترتيب: الطبقة الفيزيائيّة وطبقة طبقة ربط المُعطيات وطبقة الشبكة وطبقة النقل وطبقة الجلسة وطبقة العرض وطبقة التطبيق، تكون طبقة التطبيق على اتصال مُباشر مع التطبيقات أمّا الطبقة الفيزيائيّة فتكون على اتصال مباشر مع الوسط الناقل في الشبكة.
في هذا المثال، يُفترض وجود طرفين يتبادلان المُعطيات بشكل مباشر وفق نموذج الاتصال المعياريّ (OSI)، لن يتمّ تحديد بروتوكولات بعينِها، للإبقاء على المثال عامّاً. تحصل عملية التعليف كما يلي:
يقوم أحد التطبيقات بتوليد المُعطيات التي يجب إرسالُها عبر الشبكة في الطرف الأول، في طبقة التطبيق يقوم أحد البروتوكولات بإضافة ترويسته وتشكيل وحدة مُعطيات البروتوكول الخاصة بالطبقة السابعة (L7PDU). تُمرر هذه الوحدة إلى طبقة العرض.بشكلٍ نظريّ، يجب أن يُضيف أحد البروتوكولات ترويسة في كل من طبقتي العرض والجلسة على الترتيب، ثمّ يتمّ تمرير وحدة مُعطيات البروتكول في الطبقة الخامسة (L5PDU) إلى طبقة النقل، ولكن هذه ليست الحالة المُتبعة دوماً، وقد يتمّ إهمال عملية التغليف في هاتين الطبقتين لعدم وجود بروتوكول عامل فيهما.في طبقة النقل، يُضيف أحد البروتوكولات ترويسته فتنتج وحدة مُعطيات البروتوكول (PDU) الخاصّة بالطبقة، والتي قد تُسمّى قطعة مُعطيات (Segment) إذا كان البروتوكول المُستخدم هو بروتوكول التحكّم بالنقل (TCP) أو حزمة مُعطيات (Datagram) إذا كان البروتوكول المُستخدم هو بروتوكول حزم المُستخدم (UDP)، في نهاية المطاف يتمّ إنتاج وحدة مُعطيات بروتوكول خاصة بالطبقة الرابعة (L4PDU) وتُمَرر هذه الوحدة إلى طبقة الشبكة.تستقبل طبقة الشبكة وحدة المُعطيات القادمة من الطبقة الرابعة، ويُضيف البروتوكول العامل على هذه الطبقة ترويسته، فتنتج وحدة مُعطيات بروتوكول الطبقة الثالثة (L3PDU)، والتي تُسمىّ رزمة المُعطيات (Packet)، تُمرر الرزمة إلى طبقة ربط المُعطيات .في الغالب الأعمّ، تحتوي طبقة ربط المُعطيات على بروتكول يُضيف ترويسة ومُلحقاً للرزمة، وينتج بذلك إطار المُعطيات، وهو وحدة مُعطيات البروتوكول الخاصّة بالطبقة الثانية، أهم البروتوكولات العاملة على هذه الطبقة هي بروتوكول الإيثرنت وبروتوكول التحكّم عاليّ المُستوى في ارتباط البيانات (HDLC)، يُمرر الإطار إلى الطبقة الفيزيائيّة.لا تُضيف الطبقة الفيزيائيّة أي ترويسة أو مُلحقاً للإطار، لكنّها تحوّل الإطار إلى شكلٍ ماديّ في وسط النقل، هذا الشكل هو البت، وهو وحدة مُعطيات البروتوكول في الطبقة الأولى (L1PDU)، ويختلف الشكل الماديّ للبت باختلاف وسط النقل، فقد يكون إشارة كهربائيّة، إذا كانت الشبكة تتكون من أسلاك معدنيّة ، أو إشارة ضوئيّة إذا كان وسط النقل أليافاً بصريّة أو أمواج كهرومغناطيسيّة إذا كانت الشبكة لاسلكيّة.
في طرف الإستقبال تحصل عملية فكّ التغليف بشكلٍ مُعاكس لعمليّة التغليف، حيّث تبدأ من الطبقة الفيزيائيّة التي تكون على اتصالٍ مُباشر مع وسط النقل وتنتهي بطبقة التطبيق حيث التطبيق الذي يستقبل المُعطيات، وفي كل طبقة يتم إزالة الترويسة، والمُلحق في حال وجوده، اللذان تمّ إضافتهما في نفس الطبقة في طرف الإرسال، ثُمّ تمرير الناتج إلى الطبقة الأعلى.