كثيراً ما يختلط على المبتدئين مصطلحا Packet وFrame، وكأنهما نفس الشيء. لكن الحقيقة أن بينهما فرقاً جوهرياً يُشكّل أساس فهم كيف تتنقل البيانات عبر الشبكة. الـ Packet هو وحدة البيانات في الطبقة الثالثة، يحمل عناوين IP ويهتم بالمسار من المصدر إلى الوجهة النهائية. أما الـ Frame فهو وحدة البيانات في الطبقة الثانية، يُغلّف الـ Packet ويُحضّره للإرسال على الوسيط المحلي.
| بنية الـ Frame في الشبكات — شرح كل حقل من En-tête إلى CRC |
الفكرة ببساطة: تخيّل أنك تشحن قطعة أثاث من المغرب إلى اليابان. القطعة نفسها هي الـ Packet، لكنها تمر بعدة مراحل نقل: تُوضع في صندوق خشبي داخل شاحنة من الدار البيضاء إلى الميناء، ثم تُنقل في حاوية على سفينة، ثم تُحمل في شاحنة أخرى حتى تصل. كل وسيلة نقل تُغلّف الصندوق بطريقتها الخاصة. هذه الأغلفة المتغيرة هي الـ Frames.
جدول المحتويات
في هذا المقال ستتعرف على بنية الـ Frame بالتفصيل الكامل: ما هي مكوناته الثلاثة؟ ماذا يحتوي كل حقل؟ كيف يعمل CRC لحماية البيانات؟ ولماذا تختلف بنية الإطار من بروتوكول لآخر؟
| وجه المقارنة | Packet | Frame |
|---|---|---|
| الطبقة | Layer 3 — Network | Layer 2 — Data Link |
| العنوان المستخدم | عناوين IP | عناوين MAC |
| النطاق | من المصدر إلى الوجهة النهائية | من عقدة إلى العقدة التالية فقط |
| يتغير في الطريق؟ | لا، يبقى كما هو | نعم، يُعاد بناؤه عند كل راوتر |
| العلاقة بينهما | الـ Frame يُغلّف الـ Packet بالكامل | |
مكونات الـ Frame الثلاثة: En-tête / Données / Queue de bande
أياً كان البروتوكول الذي يستخدمه الـ Frame، سواء Ethernet أو Wi-Fi أو HDLC، فإن بنيته الأساسية تتكون دائماً من ثلاثة أقسام رئيسية متتالية:
القسم الأول: En-tête — رأس الإطار
يقع في بداية الإطار ويحمل جميع معلومات التحكم التي يحتاجها الجهاز المُستقبِل قبل أن يبدأ في قراءة البيانات. يتضمن: علامة البداية، عناوين MAC المصدر والوجهة، نوع البروتوكول، ومعلومات التحكم في الجودة. هو "غلاف المظروف" الذي يحمل عنوان المُرسِل والمُستقبِل.
القسم الثاني: Données — البيانات
هو جوهر الإطار وسبب وجوده. يحمل الحمولة الفعلية التي نريد إرسالها، وهي في الغالب حزمة IP كاملة (رأس IP + رأس TCP/UDP + بيانات التطبيق). طبقة ربط البيانات لا تفتح هذا المحتوى ولا تُحلّله، بل تحمله فقط وتُوصّله، تماماً كما يحمل عامل البريد الرسالة دون أن يقرأها.
القسم الثالث: Queue de bande — ذيل الإطار
يقع في نهاية الإطار ويحمل معلومات ضرورية للتحقق من سلامة كل ما سبقه. أهم ما يحتويه هو قيمة CRC التي تعمل كبصمة رقمية للإطار. إذا تغيّر أي بت واحد في الإطار أثناء الإرسال، يكتشف ذلك فوراً ويُرفض الإطار.
الـ Frame كالمظروف البريدي الذكي: الرأس يحمل العناوين، الوسط يحمل الرسالة، والذيل يحمل ختم التحقق من السلامة. بدون أي من هذه الأجزاء، تفشل العملية كلها.
تشبيه لفهم بنية الإطار
حقول الـ Header بالتفصيل: من البداية حتى التحكم
الـ Header ليس كتلة واحدة متجانسة، بل يتكون من عدة حقول متتالية، لكل منها وظيفة محددة لا تُؤدّيها غيرها. سنأخذ إطار Ethernet كمثال لأنه الأكثر انتشاراً:
الحقل الأول: Début de trame — بداية الإطار
أول ما يصل للجهاز المُستقبِل ليس البيانات، بل إشارة تقول: "انتبه، إطار جديد بدأ الآن!". في Ethernet، يتكون هذا القسم من جزأين:
| الجزء | الحجم | القيمة | الوظيفة |
|---|---|---|---|
| Preamble | 7 بايت | 10101010 (×7) | مزامنة الساعة بين المُرسِل والمُستقبِل |
| SFD — Start Frame Delimiter | 1 بايت | 10101011 | إعلان رسمي ببدء الإطار الفعلي |
الفارق بين Preamble وSFD يكمن في آخر بتين فقط: Preamble ينتهي بـ 10 بينما SFD ينتهي بـ 11. هذا التغيير الصغير هو ما يُخبر الجهاز: "انتهى التحضير، البيانات الحقيقية تبدأ الآن". بدون هذه المزامنة، لن يعرف الجهاز أين تبدأ البيانات وسيقرأ الإشارات بشكل خاطئ تماماً.
الحقل الثاني: Adressage — عناوين MAC
بعد علامة البداية، يأتي أهم حقلين في الرأس: عناوين MAC الوجهة والمصدر، كل منهما حجمه 6 بايت = 48 بت:
| الحقل | الحجم | الوظيفة | مثال |
|---|---|---|---|
| MAC الوجهة | 6 بايت | الجهاز الذي يجب أن يستقبل الإطار | 00-07-E9-42-AC-28 |
| MAC المصدر | 6 بايت | الجهاز الذي أرسل الإطار | 00-07-E9-63-CE-53 |
يصل الإطار لكل جهاز على الشبكة المحلية، وكل جهاز يقرأ عنوان MAC الوجهة ويُقارنه بعنوانه: تطابق يعني "هذا لي" فيقبله، واختلاف يعني "هذا لغيري" فيتجاهله فوراً. هذه الآلية البسيطة هي التي تجعل الشبكات المحلية تعمل بكفاءة دون أن تُثقل كل جهاز بمعالجة إطارات ليست له.
الحقل الثالث: Type / EtherType — نوع البروتوكول
حقل بحجم 2 بايت يُحدد نوع البروتوكول الموجود في حقل البيانات. هذا هو الحقل الذي تستخدمه طبقة LLC لمعرفة كيف تُعالج البيانات بعد فك التغليف:
| القيمة Hex | البروتوكول | ماذا يفعل الجهاز عند استقباله؟ |
|---|---|---|
| 0x0800 | IPv4 | يُحيل البيانات لمكدس IPv4 |
| 0x86DD | IPv6 | يُحيل البيانات لمكدس IPv6 |
| 0x0806 | ARP | يُعالجه كطلب ترجمة عناوين |
| 0x8100 | 802.1Q VLAN | يقرأ معلومات VLAN المُدمجة |
| 0x8847 | MPLS | يُعالجه بآلية التوجيه السريع |
بدون هذا الحقل، سيحاول الجهاز المُستقبِل معالجة جميع البيانات الواردة بنفس الطريقة، مما سيُسبب أخطاء فادحة حين تكون البيانات لبروتوكولات مختلفة. EtherType هو ما يجعل الشبكات الحديثة تدعم IPv4 وIPv6 وARP وغيرها في نفس الوقت على نفس البنية التحتية.
الحقل الرابع: Contrôle — التحكم في الجودة
ليس موجوداً في جميع البروتوكولات. في Ethernet الحديث تُدار خدمات التحكم في التدفق (Flow Control) وضمان الجودة (QoS) من طبقات أعلى. لكن في بروتوكولات مثل HDLC وFrame Relay، يحتوي هذا الحقل على معلومات ترقيم الإطارات وإدارة إعادة الإرسال على مستوى الطبقة الثانية مباشرة.
حقل كشف الأخطاء CRC — كيف يعمل؟
يقع هذا الحقل في الـ Queue de bande وهو الأكثر أهمية من الناحية التقنية. يُعرف بأسماء متعددة:
- CRC — Cyclic Redundancy Check
- FCS — Frame Check Sequence
حجمه في Ethernet هو 4 بايت = 32 بت، ويعمل كـ "بصمة رقمية" يُحسبها المُرسِل ثم يتحقق منها المُستقبِل. إذا تغيّر بت واحد في الإطار أثناء عبوره الكابل أو الهواء، يُكتشف ذلك فوراً.
خوارزمية CRC خطوة بخطوة
- عند المُرسِل — حساب البصمة: يُطبّق المُرسِل معادلة رياضية (قسمة متعددة الحدود — Polynomial Division) على محتوى الإطار كاملاً ويحصل على قيمة رقمية هي الـ CRC، ويُضيفها في ذيل الإطار قبل إرساله.
- أثناء الإرسال — احتمال التلف: الإطار يسير عبر الكابل أو الهواء، وقد يتعرض لتشويش كهربائي أو تداخل لاسلكي يُغيّر قيمة بعض البتات بشكل عشوائي.
- عند المُستقبِل — إعادة الحساب: يُطبّق المُستقبِل نفس المعادلة الرياضية على الإطار المُستقبَل ويحصل على قيمة CRC جديدة.
- المقارنة والقرار: يقارن المُستقبِل القيمتين. إذا تطابقتا ✅ الإطار سليم ويُقبل. إذا اختلفتا ❌ الإطار تالف ويُرفض فوراً.
CRC مثل بصمة الإبهام على وثيقة رسمية: تُثبت أن الوثيقة لم تُعدَّل منذ ختمها. أي تغيير ولو بسيط يجعل البصمة غير مطابقة.
تشبيه لفهم آلية CRC
ماذا يحدث عند رفض الإطار؟
عندما يرفض الجهاز إطاراً بسبب خطأ في CRC، لا يُصلحه ولا يُعيد الإرسال تلقائياً. هذا قرار مقصود في تصميم نموذج OSI: مسؤولية إعادة الإرسال تقع على عاتق الطبقات العليا، تحديداً بروتوكول TCP في الطبقة الرابعة. أما UDP فلا يُعيد الإرسال أصلاً، وهذا أحد الفروق الجوهرية بينهما.
لماذا تختلف بنية الـ Frame حسب البروتوكول؟
لا يوجد "إطار موحّد" لجميع الشبكات. كل بروتوكول يُحدد بنية إطاره الخاص بناءً على خصائص الوسيط الذي يعمل عليه واحتياجاته التقنية. إليك أبرز الفروق:
| البروتوكول | المعيار | أقصى حجم بيانات | عدد عناوين MAC | ميزة مميزة |
|---|---|---|---|---|
| Ethernet II | IEEE 802.3 | 1500 بايت (MTU) | 2 عناوين | EtherType لتحديد البروتوكول |
| Wi-Fi | IEEE 802.11 | 2304 بايت | 4 عناوين | حقول إضافية للتحكم اللاسلكي |
| HDLC | ISO 13239 | متغير | متغير | Flag 01111110 للبداية والنهاية |
| FDDI | ANSI X3T9.5 | 4500 بايت | 2 عناوين | مُصمَّم للألياف البصرية |
لماذا Wi-Fi يحتاج إلى 4 عناوين MAC؟
هذا السؤال يُربك كثيرين. الجواب بسيط: في الشبكات اللاسلكية، الاتصال لا يكون مباشراً دائماً بين جهازين، بل يمر عبر نقطة وصول (Access Point). لذا يحتاج الإطار لتتبع أربعة عناوين بدلاً من اثنين:
- عنوان MAC الجهاز المُرسِل الأصلي (المحطة)
- عنوان MAC نقطة الوصول المرتبطة بالمُرسِل
- عنوان MAC نقطة الوصول المرتبطة بالمُستقبِل
- عنوان MAC الجهاز المُستقبِل النهائي
ما هو MTU وكيف يؤثر على الـ Frame؟
الـ MTU (Maximum Transmission Unit) هو الحد الأقصى لحجم البيانات داخل إطار واحد. في Ethernet القياسي هو 1500 بايت. إذا كانت الحزمة أكبر، تُقسَّم قبل الإرسال في عملية تُسمى Fragmentation.
أهمية الـ Frame في تحليل الشبكات (Packet Analysis)
فهم بنية الـ Frame ليس نظرياً فقط، بل هو مهارة عملية يحتاجها كل مهندس شبكات ومختص أمن سيبراني. أداة Wireshark تُتيح لك التقاط الإطارات الحقيقية التي تعبر شبكتك ورؤية كل حقل بالتفصيل.
ما الذي تستطيع اكتشافه بتحليل الـ Frames؟
اكتشاف هجمات MAC Spoofing
عند تحليل الإطارات، تستطيع ملاحظة نفس عنوان MAC المصدر يظهر من منافذ Switch مختلفة، وهو ما لا يحدث في الشبكات الطبيعية. هذا مؤشر واضح على هجوم MAC Spoofing حيث يُغيّر المهاجم عنوانه لانتحال هوية جهاز آخر.
تشخيص مشاكل الأداء
ارتفاع نسبة الإطارات المرفوضة بسبب أخطاء CRC يُشير إلى مشكلة فيزيائية: كابل تالف، موصّل مُتسخ، أو تشويش كهربائي. هذا التشخيص يوفر ساعات من البحث العشوائي عن مصدر المشكلة.
تحليل البروتوكولات المُستخدَمة
قراءة حقل EtherType في آلاف الإطارات تُظهر لك خريطة كاملة للبروتوكولات التي تعمل على شبكتك: كم نسبة IPv4 مقابل IPv6؟ هل هناك بروتوكولات غير متوقعة؟ هل VLAN مُهيأة بشكل صحيح؟
اكتشاف هجمات ARP Poisoning
بتحليل إطارات ARP (EtherType = 0x0806)، تستطيع رصد حالات غير طبيعية: إطارات ARP مُرسَلة بكثرة مشبوهة من جهاز واحد، أو ردود ARP تُغيّر مداخل جدول ARP لأجهزة أخرى، وهو مؤشر واضح على هجوم تسميم ARP.
كيف تبدأ مع Wireshark؟
Wireshark مجاني ومتاح لجميع أنظمة التشغيل. بعد تثبيته، اختر واجهة الشبكة الخاصة بك وابدأ التقاط الإطارات. ستجد كل إطار مُفككاً إلى طبقاته: Ethernet Frame في الأسفل يحتوي على عناوين MAC، وفوقه IP Packet، وفوقه TCP أو UDP. حاول البحث عن حقل EtherType وقيمته لكل إطار، وستبدأ فوراً في رؤية ما تعلمته في هذا المقال على أرض الواقع.
خلاصة: الـ Frame هو الخلية الأساسية لكل شبكة
كل رسالة تُرسلها، كل موقع تفتحه، كل مكالمة فيديو تُجريها، تبدأ وتنتهي بإطارات. الـ Frame بحقوله الدقيقة المتكاملة هو ما يجعل هذا التواصل ممكناً وموثوقاً عبر الشبكات المحلية والعالمية.
تذكّر المعادلة الأساسية التي درستها اليوم: الـ Frame = En-tête + Données + Queue de bande. الرأس يُعرّف الإطار ويُوجّهه، البيانات هي الغاية من كل هذا العمل، والذيل يضمن وصول البيانات سليمة. ثلاثة أقسام، كل منها ضروري، وكل منها يؤدي دوراً لا يستطيع غيره القيام به.
في المقال القادم، سنتعمق في بروتوكول Ethernet بالتفصيل: تاريخه، كيف تطوّر من 10 Mbit/s إلى 100 Gbit/s، بنية إطاره الخاص، وكيف تعمل عناوين MAC في بيئة Ethernet حقيقية. لا تفوّت ذلك.
أسئلة شائعة حول بنية الـ Frame
ما الفرق الأساسي بين Frame وPacket؟
الـ Packet وحدة الطبقة الثالثة يحمل عناوين IP ويتتبع المسار من المصدر حتى الوجهة النهائية ولا يتغير في الطريق. الـ Frame وحدة الطبقة الثانية يُغلّف الـ Packet ويحمل عناوين MAC ويُعيد بناؤه عند كل راوتر ليناسب الشبكة التالية. العلاقة: Frame يحتوي Packet بداخله تماماً كما يحتوي المظروف رسالة.
لماذا الحد الأدنى لبيانات إطار Ethernet هو 46 بايت؟
الحد الأدنى لإطار Ethernet الكامل هو 64 بايت (18 بايت overhead + 46 بايت بيانات). هذا مرتبط تاريخياً بآلية CSMA/CD: يجب أن يكون الإطار كبيراً بما يكفي ليكون لا يزال على الكابل عند اكتشاف أي تصادم محتمل. إذا كانت البيانات أقل من 46 بايت تُضاف بايتات حشو (Padding) لتكملة الحجم الأدنى.
هل CRC يُصلح الأخطاء أم يكتشفها فقط؟
CRC يكتشف الأخطاء فقط ولا يُصلحها. عند اكتشاف خطأ يُرفض الإطار وتُطلب إعادة الإرسال من الطبقات العليا مثل TCP. هذا تصميم مقصود: طبقة ربط البيانات تهتم بالكشف السريع، وترك مسؤولية الإصلاح لبروتوكولات أكثر تعقيداً في الطبقات العليا يجعل كل طبقة تتخصص في ما تُتقنه.
ما هو Jumbo Frame ومتى نستخدمه؟
Jumbo Frame هو إطار Ethernet بحجم بيانات يتجاوز الـ MTU القياسي (1500 بايت) ليصل إلى 9000 بايت. يُستخدم في بيئات مراكز البيانات عالية الأداء لتقليل عدد الإطارات المُرسَلة وخفض العبء الإضافي على الأجهزة، مما يرفع الأداء الكلي. يتطلب دعماً صريحاً من جميع الأجهزة على المسار وإلا تُقسَّم الإطارات تلقائياً.
ما هو Wireshark وكيف أستخدمه لرؤية الـ Frames؟
Wireshark برنامج مجاني لتحليل الشبكات يُتيح التقاط الإطارات الحقيقية التي تعبر واجهة الشبكة وعرضها مُفككة إلى طبقاتها. لاستخدامه: ثبّته من wireshark.org، اختر واجهة الشبكة، ابدأ التقاط، ثم افتح أي إطار لترى Ethernet Header مع عناوين MAC وEtherType، وبداخله IP Packet، وبداخله بروتوكول النقل. أداة لا غنى عنها لكل مهندس شبكات.
لماذا يتغير الـ Frame عند كل راوتر بينما الـ Packet لا يتغير؟
لأن الـ Frame مسؤول عن التوصيل المحلي بين عقدتين متجاورتين فقط، وكل شبكة محلية لها بروتوكول وعناوين MAC مختلفة. عند وصول الإطار للراوتر، يُفكّكه ويستخرج الـ Packet، ثم يبني إطاراً جديداً مناسباً للشبكة التالية بعناوين MAC جديدة. الـ Packet في المقابل يحمل عناوين IP التي تمثل المصدر والوجهة النهائية ولا داعي لتغييرها في كل خطوة.