اقرأ في هذا المقال
- أساسيات الفرق بين Byte stuffing وBit stuffing
- كيفية عمل Byte stuffing و Bit stuffing
- إطارات طبقة ارتباط البيانات في Byte stuffing وBit stuffing
- الفرق بين Byte stuffing وBit stuffing
- خصائص Bit stuffing
تُعد طبقة ارتباط البيانات مسؤولة عن شيء يسمى الإطار وهو تقسيم تدفق البتات من طبقة الشبكة إلى وحدات يمكن التحكم بها تسمى الإطارات، كما يتكون كل إطار من عنوان المرسل وعنوان الوجهة حيث يحدد عنوان الوجهة المكان الذي يجب أن تذهب إليه الحزمة، ويساعد عنوان المرسل المستلم في الإقرار بالإيصال.
أساسيات الفرق بين Byte stuffing وBit stuffing
يمكن أن تكون الإطارات ذات حجم ثابت أو متغير الحجم، حيث في الإطارات ذات الحجم الثابت ليست هناك ضرورة لتعيين حدود الإطارات، حيث يمكن استخدام الحجم نفسه لتحديد نهاية الإطار وبداية الإطار التالي، لكن في الإطارات ذات الحجم المتغير هناك حاجة إلى طريقة لتحديد نهاية الإطار وبداية الإطار التالي.
لفصل إطار واحد عن التالي يتم إضافة علم “8 بت” أو “1 بايت” في بداية ونهاية الإطار، لكن المشكلة في ذلك هي أن أي نمط يستخدم للعلم يمكن أن يكون أيضاً جزءاً من المعلومات، لذلك هناك طريقتان للتغلب على هذه المشكلة:
أولاً: ما هو Byte stuffing
حشو البايت “Byte stuffing”: هو آلية لتحويل رسالة مكونة من سلسلة من البايت التي قد تحتوي على قيم محجوزة مثل محدد الإطار، وإلى تسلسل بايت آخر لا يحتوي على القيم المحجوزة.
ثانياً: ما هو Bit stuffing
حشو البتات “Bit stuffing”: هو آلية إدخال بت أو أكثر من غير المعلومات في رسالة ليتم إرسالها لتفريق تسلسل الرسالة ولغرض المزامنة.
كيفية عمل Byte stuffing و Bit stuffing
تتم زيادة البايت وعادةً حرف الهروب “ESC” الذي يحتوي على نمط بت محدد مسبقاً إلى قسم البيانات في الإطار عندما يكون هناك حرف بنفس نمط العلم، حيث عندما يواجه جهاز الاستقبال حرف “ESC” فإنّه يزيل من قسم البيانات ويعامل الحرف التالي على أنه بيانات وليس علامة.
لكن المشكلة تنشأ عندما يحتوي النص على حرف هروب واحد أو أكثر متبوعاً بعلامة، ولحل هذه المشكلة يتم تمييز أحرف الهروب التي تشكل جزءاً من النص بحرف هروب آخر، أي إذا كان حرف الهروب جزءاً من النص تتم إضافة حرف إضافي لإظهار أنّ الحرف الثاني جزء من النص.
في طبقة ارتباط البيانات يتم تقسيم تدفق البتات من الطبقة المادية إلى إطارات بيانات، حيث يمكن أن تكون إطارات البيانات ذات طول ثابت أو متغير الطول، وفي الإطارات ذات الطول المتغير قد يختلف حجم كل رتل يتم إرساله، لذلك يتم استخدام نمط البتات كمحدد لتمييز نهاية إطار واحد وبداية الإطار التالي ومع ذلك إذا حدث النمط في الرسالة فيجب عندئذٍ دمج الآليات بحيث يتم تجنب هذا الموقف، والنهجان الشائعان هما:
- بايت حشو، حيث يتم حشو البايت “Byte” في الرسالة للتمييز عن المحدد، وهذا ما يسمى أيضاً بالتأطير الموجه نحو الحرف.
- بت حشو، حيث يتم حشو نمط من البتات ذات الطول التعسفي في الرسالة للتمييز عن المحدد وهذا ما يسمى أيضاً بتأطير البتات.
ملاحظة:“ESC” هي اختصار لـ “Electronic Stability Control”.
إطارات طبقة ارتباط البيانات في Byte stuffing وBit stuffing
أولاً: رأس الإطار
يحتوي على عناوين المصدر والوجهة للإطار.
ثانياً: حقل الحمولة
- يحتوي على الرسالة المراد تسليمها.
- في “Bit stuffing” يكون تسلسلًا متغيراً من البتات، بينما في “Byte stuffing” يكون تسلسلاً متغيراً لبايتات البيانات.
ثالثاً: المقطورة
تحتوي على بتات اكتشاف الأخطاء وتصحيح الأخطاء.
رابعاً: الأعلام
الأعلام: هي محددات الإطار التي تشير إلى بداية الإطار ونهايته، وفي “Bit stuffing” يتكون العلم من نمط بت يحدد بتات البداية والنهاية، كما يتكون بشكل عام من “8 بتات” ويتألف من ستة أو أكثر من “1s” متتالية، أمّا في “Byte stuffing” يتكون العلم من “1 بايت” للدلالة على حرف خاص يعتمد على البروتوكول.
الفرق بين Byte stuffing وBit stuffing
1- آلية عمل Byte stuffing
- إذا كان نمط بايت العلم موجوداً في تسلسل بايت الرسالة، فيجب أن تكون هناك استراتيجية بحيث لا يعتبر المستقبِل النمط نهاية الرتل.
- كما يتم حشو بايت خاص يسمى حرف الهروب “ESC” قبل كل بايت في الرسالة بنفس نمط بايت العلم.
- إذا تم العثور على تسلسل “ESC” في بايت الرسالة فسيتم حشو بايت آخر “ESC” قبله.
2- آلية عمل Bit stuffing
- يحتوي تسلسل علم التحديد بشكل عام على ستة أو أكثر من “1s” متتالية.
- تستخدم معظم البروتوكولات نموذج “8 بت” أي “01111110” كعلامة.
- من أجل التمييز بين الرسالة والعلامة في حالة نفس التسلسل، يتم حشو بت واحد في الرسالة.
- عندما يتبع “0 بت” خمس بتات واحدة متتالية في الرسالة، يتم حشو “0 بت” إضافي في نهاية الآحاد الخمسة.
- عندما يتلقى المتلقي الرسالة، فإنّه يزيل الأصفار المحشوة بعد كل تسلسل من خمسة “1 ثانية”.
- ثم يتم إرسال الرسالة غير المحشوة إلى الطبقات العليا.
- العلم في الغالب هو نمط “8 بت” خاص أي “01111110” يستخدم لتعريف بداية ونهاية الإطار.
- مشكلة العلم هي نفسها التي كانت في حالة “Byte stuffing”، لذلك في هذا البروتوكول ما يتم القيام به هو إذا كان هناك 0 وخمس بتات واحدة متتالية، تتم إضافة 0 إضافي بعد هذه البتات.
- تتم إزالة هذه البتة المحشوة الإضافية من البيانات بواسطة جهاز الاستقبال.
- تتم إضافة البتة الإضافية بعد “0” واحداً متبوعاُ بخمس بتات واحدة بغض النظر عن قيمة البتة التالية.
- أيضاً نظراً لأنّ جانب المرسل يعرف دائماً التسلسل الذي يمثل البيانات وأي علامة، فإنّه سيضيف فقط هذه البتة الإضافية في تسلسل البيانات، وليس في تسلسل العلم.
خصائص Bit stuffing
- يسمح للإطار باحتواء عدد عشوائي من وحدات البت وحجم حرف عشوائي.
- الإطارات مفصولة بعلم منفصل.
- يبدأ كل إطار وينتهي بنموذج بت خاص، يسمى “01111110 بايت” العلم.
- عند مصادفة خمسة “1s” متتالية في البيانات، فإنّها تقوم تلقائياً بحشو “0” بت في تدفق بتات صادر.
- في هذه الطريقة تحتوي الإطارات على عدد عشوائي من البتات وتسمح برموز الأحرف مع عدد عشوائي من البتات لكل حرف، وفي حالته يبدأ كل إطار وينتهي بنمط بت خاص “01111110”.
- في البيانات يتم حشو “0 بت” تلقائياً في دفق البتات الصادرة عندما تجد طبقة ارتباط بيانات المرسل خمس ثوان متتالية.
- يشبه حشو البتات حشو البايت، حيث يتم حشو بايت الهروب في دفق الأحرف الصادر قبل بايت العلم في البيانات.
- عندما يرى جهاز الاستقبال خمس بتات متتالية واردة متبوعة بـ “0 بت”، فإنّه يقوم تلقائياً بإزالة أي يحذف “0 بت”، وBit Stuffing” شفاف تماماً لطبقة الشبكة كحشو للبايت.
- تجد طريقة التأطير هذه تطبيقها في الشبكات التي يحتوي فيها تغيير البيانات إلى رمز على الوسيط المادي على بعض البيانات المكررة أو المكررة، وعلى سبيل المثال تقوم بعض الشبكات المحلية بتشفير جزء من البيانات باستخدام بتين فعليين.