Encapsulation وDecapsulation: كيف تنتقل البيانات بين طبقات الشبكة؟

مشاركة

عندما ترسل رسالة أو تفتح موقعًا على الإنترنت، لا تنتقل بيانات التطبيق مباشرة من جهازك إلى الشبكة كما هي. تمر البيانات عبر عدة طبقات، وتضيف كل طبقة المعلومات التي تحتاجها لأداء وظيفتها قبل إرسالها إلى الطبقة التالية.

Encapsulation وDecapsulation كيف تنتقل البيانات بين طبقات الشبكة؟

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

مهم: إذا كنت تبدأ دراسة Networking من الصفر، اقرأ أولًا دليل أساسيات الشبكات من الصفر خطوة بخطوة ثم عد إلى هذا المقال.

لماذا يتم تقسيم الاتصال الشبكي إلى طبقات؟

الاتصال بين جهازين عملية معقدة. التطبيق يحتاج إلى تبادل البيانات، وطبقة النقل تحتاج إلى التعامل مع الاتصال بين التطبيقات، وIP يهتم بالعنونة ونقل البيانات بين الشبكات، بينما تتولى طبقة الربط إرسال البيانات عبر الشبكة المتصلة مباشرة.

بدل جعل بروتوكول واحد مسؤولًا عن كل هذه الوظائف، يتم تقسيمها إلى طبقات، بحيث يكون لكل طبقة دور محدد.

يوضح Internet Protocol Suite بصورة مبسطة أربع طبقات رئيسية:

  1. Application — طبقة التطبيق.
  2. Transport — طبقة النقل.
  3. Internet — طبقة الإنترنت.
  4. Link — طبقة الربط.

ما فائدة تقسيم الشبكة إلى طبقات؟

استخدام الطبقات يجعل تصميم الشبكات وفهمها أسهل، لأنه يسمح بدراسة كل وظيفة بصورة منفصلة.

  • تقليل التعقيد: لا تحتاج إلى فهم كل عملية الشبكة دفعة واحدة.
  • فصل الوظائف: لكل طبقة مسؤوليات واضحة.
  • سهولة التطوير: يمكن تطوير بروتوكول أو تقنية في مستوى معين دون إعادة تصميم كل الشبكة.
  • سهولة استكشاف الأخطاء: يمكن تحديد المستوى الذي تحدث فيه المشكلة.
  • التوافق: تستطيع أنظمة وأجهزة مختلفة التواصل عندما تطبق البروتوكولات والمعايير المطلوبة بصورة صحيحة.

ملاحظة: الطبقات نموذج يساعدنا على فهم النظام، لكنها ليست جدرانًا منفصلة تمامًا. توجد تفاعلات بين الطبقات في التطبيقات والتنفيذ الفعلي.

ما هو Encapsulation في الشبكات؟

Encapsulation هو العملية التي تمر فيها البيانات من الطبقات العليا إلى الطبقات الدنيا في الجهاز المرسل، مع إضافة معلومات خاصة بكل طبقة.

يمكن تبسيط المسار هكذا:

Application Data
      ↓
Transport
      ↓
Internet
      ↓
Link
      ↓
Network

كلما انتقلت البيانات إلى طبقة أدنى، تضيف تلك الطبقة Header أو معلومات تحكم تحتاجها لتنفيذ وظيفتها.

ما هو Header؟

Header هو مجموعة معلومات تضاف قبل البيانات.

قد يحتوي Header، حسب البروتوكول، على معلومات مثل:

  • عناوين المصدر والوجهة.
  • أرقام المنافذ Ports.
  • نوع البروتوكول.
  • أرقام التسلسل.
  • معلومات تحكم أخرى.

لا تضيف كل الطبقات النوع نفسه من المعلومات، لأن وظيفة كل بروتوكول مختلفة.

المرحلة الأولى: بيانات التطبيق

تبدأ العملية داخل Application.

لنفترض أن المتصفح يريد إرسال طلب إلى خادم ويب. يقوم التطبيق بإنشاء البيانات التي يحتاج إلى إرسالها ثم تمرر إلى بروتوكولات الطبقات الأدنى.

في هذه المرحلة نهتم أساسًا بالمعلومات التي يريد التطبيق تبادلها.

المرحلة الثانية: طبقة النقل Transport

عندما تصل البيانات إلى Transport Layer، يتولى بروتوكول النقل معالجة الاتصال بين التطبيقات.

إذا كان البروتوكول المستخدم هو TCP، فإن وحدة النقل تسمى TCP Segment.

يتكون TCP Segment بصورة مبسطة من:

TCP Header + Application Data

يتضمن TCP Header معلومات يستخدمها البروتوكول مثل أرقام Ports ومعلومات التسلسل والتحكم في الاتصال.

أما عند استخدام UDP فتستخدم UDP Datagrams بدل TCP Segments.

المرحلة الثالثة: طبقة الإنترنت

تنتقل بيانات طبقة النقل بعد ذلك إلى Internet Layer.

هنا يستخدم IP لنقل البيانات من Source Host إلى Destination Host عبر الشبكات.

يقوم IP بإضافة IP Header حول البيانات القادمة من طبقة النقل.

IP Header + Transport Data

تسمى وحدة الإرسال في IP بـIP Datagram.

ومن أهم المعلومات التي يحملها IP Header:

  • Source IP Address.
  • Destination IP Address.
  • معلومات تحدد البروتوكول الموجود داخل الـDatagram.
  • معلومات أخرى تختلف بين IPv4 وIPv6.

المرحلة الرابعة: طبقة الربط Link Layer

الآن يجب إرسال IP Datagram عبر الشبكة المتصلة بالجهاز مباشرة.

عند استخدام Ethernet، تُوضع البيانات داخل Ethernet Frame.

بصورة مبسطة:

Ethernet Header
      +
IP Datagram
      +
Ethernet Trailer

يحتوي Ethernet Header على معلومات مهمة للاتصال المحلي، ومنها عناوين MAC المصدر والوجهة.

كما يحتوي Ethernet Frame على FCS في نهايته للمساعدة على اكتشاف أخطاء الإطار أثناء النقل.

كيف تتغير أسماء البيانات أثناء Encapsulation؟

المستوى الوحدة المستخدمة للتبسيط
Application Data
TCP Transport Segment
IP IP Datagram
Link / Ethernet Frame

مهم: ستجد في الكتب والدورات اختلافات بسيطة في استخدام كلمات Packet وDatagram وPDU. لذلك الأفضل فهم البنية نفسها بدل حفظ جدول أسماء فقط.

Encapsulation خطوة بخطوة

إذا أرسل تطبيق بيانات عبر TCP وIP وEthernet، يمكن تصور العملية هكذا:

Application Data

↓ إضافة TCP Header

TCP Header | Data

↓ إضافة IP Header

IP Header | TCP Header | Data

↓ إضافة Ethernet Header وTrailer

Ethernet Header | IP Header | TCP Header | Data | Trailer

↓
الإرسال عبر الشبكة

لاحظ أن البيانات الأصلية لم تختفِ، وإنما أصبحت Payload داخل وحدات الطبقات الأدنى.

التغليف وفك الغليف في شبكات
التغليف وفك الغليف في شبكات

ما معنى Payload؟

Payload هي البيانات التي يحملها بروتوكول أو وحدة شبكة لصالح الطبقة الأعلى.

فعلى سبيل المثال، TCP Segment يصبح Payload داخل IP Datagram.

ثم يصبح IP Datagram نفسه Payload داخل Ethernet Frame.

يمكن تشبيه العملية بصندوق صغير يُوضع داخل صندوق أكبر، ثم يوضع الصندوق كله داخل وسيلة النقل المناسبة.

ما هو Decapsulation؟

Decapsulation هي العملية العكسية التي تحدث عند وصول البيانات إلى الجهاز المستقبل.

بدل إضافة Headers، يقوم النظام بقراءة معلومات كل طبقة وإزالة التغليف الخاص بها ثم تمرير المحتوى إلى الطبقة الأعلى.

Ethernet Frame
      ↓
IP Datagram
      ↓
TCP Segment
      ↓
Application Data

Decapsulation خطوة بخطوة

  1. تستقبل واجهة الشبكة Ethernet Frame.
  2. تتعامل طبقة الربط مع المعلومات الخاصة بالإطار.
  3. يتم تمرير IP Datagram إلى Internet Layer.
  4. يقرأ IP Header ويحدد البروتوكول الذي يجب أن يستلم البيانات.
  5. تمر البيانات إلى TCP أو UDP حسب الحالة.
  6. تقوم طبقة النقل بمعالجة معلوماتها.
  7. تصل البيانات في النهاية إلى التطبيق المطلوب.

مثال عملي: ماذا يحدث عندما تفتح موقعًا؟

تخيل أنك فتحت موقعًا في المتصفح.

في جهازك يحدث Encapsulation:

  1. ينشئ التطبيق البيانات المطلوبة.
  2. تضيف طبقة النقل معلوماتها.
  3. يضيف IP معلومات العنونة اللازمة.
  4. تغلف البيانات داخل Frame مناسب للشبكة المحلية.
  5. يتم إرسال الإطار عبر الشبكة.

وعندما تصل البيانات إلى الخادم يحدث Decapsulation:

  1. يتم التعامل مع Frame.
  2. يُستخرج IP Datagram.
  3. تُمرر بيانات النقل إلى البروتوكول المناسب.
  4. تصل البيانات في النهاية إلى خدمة الويب.

وعند إرسال الخادم Response تحدث العملية نفسها في الاتجاه المعاكس.

ماذا يفعل Switch أثناء هذه العملية؟

عند Ethernet Switching يهتم Switch بصورة أساسية بمعلومات Layer 2 الموجودة في Frame، ومنها Destination MAC Address، حتى يتخذ قرار تمرير الإطار إلى المنفذ المناسب.

لا يحتاج Switch التقليدي إلى معالجة طلب HTTP الموجود داخل البيانات حتى يؤدي وظيفته الأساسية.

ماذا يفعل Router؟

عندما يحتاج IP Datagram إلى الانتقال إلى شبكة أخرى، يقوم Router بفحص معلومات Layer 3 واتخاذ قرار Routing.

هناك نقطة مهمة جدًا هنا: Ethernet Frame لا ينتقل عادة دون تغيير من جهازك عبر كل الإنترنت.

عندما يعبر Packet من رابط إلى رابط آخر، يمكن إزالة تغليف Layer 2 القديم ثم إنشاء تغليف جديد يناسب الرابط التالي، بينما يستمر IP Datagram في طريقه نحو الوجهة.

هل MAC Address يصل من جهازك إلى الخادم البعيد؟

ليس بالطريقة نفسها التي يعمل بها Destination IP Address.

عناوين MAC في Ethernet تستخدم للاتصال على الرابط المحلي، ويمكن أن يتغير Layer 2 Header عندما تمر البيانات عبر Router إلى رابط آخر.

أما عنوان IP فيُستخدم لتحديد الاتصال بين المصدر والوجهة عبر الشبكات، مع مراعاة أن بعض التقنيات مثل NAT قد تغيّر معلومات IP أثناء المسار.

لماذا Encapsulation مهم لفهم الشبكات؟

عندما تفهم التغليف، تبدأ الكثير من المفاهيم التي تبدو منفصلة في الارتباط ببعضها.

ستفهم مثلًا لماذا لدينا:

  • MAC Address وIP Address في الوقت نفسه.
  • Ports بالإضافة إلى IP Addresses.
  • Switch يعمل بصورة مختلفة عن Router.
  • Frame يختلف عن IP Datagram.
  • TCP Header مختلف عن IP Header.

كيف يساعد Encapsulation في استكشاف الأعطال؟

يمكن تحليل المشكلة وفق المستوى الذي تظهر فيه.

فمثلًا:

  • هل يوجد Link فعلي بين الجهاز والشبكة؟
  • هل Layer 2 يعمل بصورة صحيحة؟
  • هل لدى الجهاز IP Address وإعدادات صحيحة؟
  • هل يمكن الوصول إلى الوجهة عبر Routing؟
  • هل TCP أو UDP يصل إلى الخدمة المطلوبة؟
  • هل التطبيق نفسه يستجيب؟

هذه الطريقة أكثر تنظيمًا من محاولة فحص جميع احتمالات المشكلة دفعة واحدة.

هل Encapsulation يعني التشفير؟

لا.

Encapsulation تعني وضع بيانات طبقة داخل وحدة طبقة أخرى مع إضافة معلومات التحكم اللازمة.

أما Encryption فهو تحويل البيانات بطريقة تجعل محتواها غير قابل للقراءة دون المفتاح أو الآلية المناسبة.

يمكن أن يحدث التغليف والتشفير في الاتصال نفسه، لكن المصطلحين لا يعنيان الشيء نفسه.

Encapsulation ليس هو نفسه Encoding

كذلك لا ينبغي الخلط بين Encapsulation وEncoding.

Encapsulation يتعلق بإضافة معلومات البروتوكولات حول البيانات أثناء انتقالها بين الطبقات.

أما Encoding فيمكن أن يشير إلى تمثيل المعلومات أو تحويلها إلى صيغة أو إشارة معينة بحسب السياق والتقنية المستخدمة.

ما علاقة Encapsulation بنموذج OSI؟

يستخدم نموذج OSI أيضًا مفهوم الطبقات لمساعدة الطلاب والمهندسين على فهم وظائف الاتصال.

ولهذا يستخدم Encapsulation كثيرًا أثناء شرح OSI؛ حيث نتتبع البيانات وهي تنتقل من الطبقات العليا إلى الدنيا في جهاز الإرسال، ثم تصعد من الطبقات الدنيا إلى العليا في جهاز الاستقبال.

لكن من المهم ألا تحفظ أسماء الطبقات فقط. افهم ما الذي تضيفه كل طبقة ولماذا تحتاج إليه الطبقة التالية.

مثال سريع للحفظ

يمكن تذكر الرحلة الأساسية بهذه الصورة:

المرسل:

Data
↓
Segment
↓
IP Datagram
↓
Frame
↓
الشبكة


المستقبل:

Frame
↓
IP Datagram
↓
Segment
↓
Data

الاتجاه الأول هو Encapsulation والاتجاه الثاني هو Decapsulation.

أسئلة شائعة

ما معنى Encapsulation في الشبكات؟

هي عملية إضافة معلومات البروتوكولات إلى البيانات أثناء انتقالها من الطبقات العليا إلى الطبقات الدنيا قبل الإرسال.

ما معنى Decapsulation؟

هي العملية العكسية، حيث تتم معالجة وإزالة معلومات التغليف تدريجيًا حتى تصل البيانات إلى التطبيق المستقبل.

ما الفرق بين Segment وFrame؟

TCP Segment هو وحدة مرتبطة ببروتوكول TCP في Transport Layer، بينما Frame هو وحدة إرسال في Link Layer مثل Ethernet Frame.

هل Packet وFrame هما الشيء نفسه؟

لا. المصطلحان يشيران إلى وحدات في مستويات مختلفة من الاتصال، رغم أن كلمة Packet تستخدم أحيانًا بصورة عامة في الكلام غير الدقيق عن بيانات الشبكة.

هل كل طبقة تضيف Header؟

تضيف بروتوكولات متعددة Headers خاصة بها، لكن تفاصيل التغليف تعتمد على البروتوكولات المستخدمة، وليس من الأفضل افتراض قالب واحد حرفي لكل بروتوكول وكل طبقة.

الخلاصة

تقسيم الشبكات إلى طبقات يجعل الاتصال المعقد أسهل في التصميم والفهم والتحليل. أثناء Encapsulation تنتقل بيانات التطبيق إلى طبقة النقل ثم IP ثم طبقة الربط، وتضاف معلومات كل بروتوكول حول البيانات قبل إرسالها.

عند الجهاز المستقبل تحدث Decapsulation، فتتم معالجة التغليف بالعكس حتى تعود البيانات إلى التطبيق.

إذا فهمت رحلة Data → Segment → IP Datagram → Frame والعكس، فقد بنيت أساسًا مهمًا جدًا لفهم OSI وTCP/IP وEthernet وIP وTCP وWireshark لاحقًا.

للمرجع التقني يمكنك مراجعة RFC 1122 من RFC Editor.

شارك برأيك

لديك إضافة، سؤال أو تجربة مرتبطة بالموضوع؟ اكتبها وشارك بها القراء.